{"version":3,"sources":["src/data/protocols/http/http-client.ts","src/domain/models/index.ts","src/domain/usecases/index.ts","src/data/protocols/index.ts","src/data/protocols/date/index.ts","src/data/protocols/criptography/index.ts","src/domain/models/client-model.ts","src/domain/models/card-model.ts","src/domain/models/service-order-detail-model.ts","src/domain/models/service-order-model.ts","src/domain/models/ticket-model.ts","src/domain/models/track-models.ts","src/domain/usecases/login/index.ts","src/domain/usecases/financial/index.ts","src/domain/usecases/financial/generate-inside-bank-slip.ts","src/domain/usecases/financial/get-tickets.ts","src/domain/usecases/financial/open-statement-of-debts.ts","src/domain/usecases/settings/index.ts","src/domain/usecases/accept-digital/index.ts","src/domain/usecases/accept-digital/get-digital-accepts.ts","src/domain/usecases/sac/index.ts","src/domain/usecases/nfs/index.ts","src/domain/usecases/nfs/get-nfs.ts","src/domain/usecases/nfs/open-danfe.ts","src/domain/usecases/nfs/open-nfse.ts","src/domain/usecases/nfs/open-lease-receipt.ts","assets/hexagon-bg.svg","assets/logo-white.svg","src/domain/usecases/events/get-remoty-events.ts","src/domain/usecases/events/get-moni-events.ts","src/domain/usecases/events/get-sigma-events.ts","src/domain/usecases/service-orders/add-travel-alert-os.ts","src/domain/usecases/service-orders/get-service-orders.ts","node_modules/moment/locale sync /^/.//.*$","assets/card-bg.png","assets/inside-logo-white.svg","assets/chip-card.svg","assets/logo-color.svg","assets/sugestao-instalacao.png","assets/fundo.png","assets/logo_24dp.svg","src/presentation/styles/palette.ts","src/presentation/styles/theme.ts","src/infra/cache/universal-cookie-adapter.ts","src/infra/cache/local-storage-adapter.ts","src/main/factories/cache/local-storage-adapter-factory.ts","src/domain/errors/invalid-credential-error.ts","src/domain/errors/invalid-relation-company-error.ts","src/domain/errors/unexpected-error.ts","src/domain/errors/unexpected-result-format-error.ts","src/domain/errors/access-denied-error.ts","src/domain/errors/forbidden-error.ts","src/domain/errors/result-without-records-error.ts","src/domain/errors/same-password-error.ts","src/domain/errors/not-found-error.ts","src/data/usecases/login/remote-authentication/remote-authentication.ts","src/data/usecases/login/remote-authentication-admin/remote-authentication-admin.ts","src/data/usecases/login/remote-get-user-by-document/remote-get-user-by-document.ts","src/data/usecases/login/remote-forgot-password/remote-forgot-password.ts","src/data/usecases/login/remote-portal-logout/remote-portal-logout.ts","src/data/usecases/login/remote-metrics-login/remote-metrics-login.ts","src/data/usecases/login/remove-metrics-logoff/remote-metrics-logoff.ts","src/data/usecases/login/remote-get-client-by-code/remote-get-client-by-code.ts","src/data/usecases/login/remote-get-client-contract/remote-get-client-contract.ts","src/data/usecases/login/remote-update-password/remote-update-password.ts","src/data/usecases/login/remote-update-default-password/remote-update-default-password.ts","src/data/usecases/login/remote-validate-password-recovery/remote-validate-password-recovery.ts","src/data/usecases/credit-card/get-credit-card/remote-get-credit-card.ts","src/data/usecases/credit-card/save-credit-card/remote-save-credit-card.ts","src/data/usecases/credit-card/pay-with-credit-card/remote-pay-with-credit-card.ts","src/data/usecases/financial/get-tickets/remote-get-tickets.ts","src/data/usecases/financial/get-ticket-pix/remote-get-ticket-pix.ts","src/data/usecases/financial/generate-bank-slip/remote-generate-bank-slip.ts","src/data/usecases/financial/generate-inside-bank-slip/remote-generate-inside-bank-slip.ts","src/data/usecases/financial/open-bank-slip/remote-open-bank-slip.ts","src/data/usecases/financial/open-statement-of-debts/remote-open-statement-of-debts.ts","src/data/usecases/settings/get-theme/remote-get-theme.ts","src/data/usecases/settings/get-unit-config/remote-get-unit-config.ts","src/data/usecases/settings/get-units/remote-get-units.ts","src/data/usecases/settings/get-prospect-configs/remote-get-prospect-configs.ts","src/data/usecases/settings/save-theme/remote-save-theme.ts","src/data/usecases/settings/save-unit-config/remote-save-unit-config.ts","src/data/usecases/settings/prospect-registration/remote-prospect-registration.ts","src/data/usecases/settings/test-email/remote-test-email.ts","src/data/usecases/settings/upload-file/remote-upload-file.ts","src/data/usecases/settings/save-prospect-config/remote-save-prospect-configs.ts","src/data/usecases/settings/get-events-settings/remote-get-events-settings.ts","src/data/usecases/settings/show-events/remote-show-events.ts","src/data/usecases/settings/get-sigma-desk-connections/remote-get-sigma-desk-connections.ts","src/data/usecases/nfs/get-nfs/remote-get-nfs.ts","src/data/usecases/nfs/open-danfe/remote-open-danfe.ts","src/data/usecases/nfs/open-nfse/remote-open-nfse.ts","src/data/usecases/nfs/open-lease-receipt/remote-open-lease-receipt.ts","src/data/usecases/service-orders/add-new-os/remote-add-new-os.ts","src/data/usecases/service-orders/add-travel-alert-os/remote-add-travel-alert-os.ts","src/data/usecases/service-orders/get-service-orders/remote-get-service-orders.ts","src/data/usecases/service-orders/get-os-attendance/remote-get-os-attendance.ts","src/data/usecases/service-orders/get-service-order-detail/remote-get-service-order-detail.ts","src/data/usecases/redes-sociais/remote-get-redes-sociais/remote-get-redes-sociais.ts","src/data/usecases/redes-sociais/remote-save-redes-sociais/remote-save-redes-sociais.ts","src/data/usecases/accept-digital/get-accept-digital/remote-get-accept-digital.ts","src/data/usecases/accept-digital/get-open-url-doc-accept/remote-open-url-doc-accept.ts","src/data/usecases/accept-digital/open-document-accept/remote-open-document-accept.ts","src/data/usecases/events/print-events/remote-print-events.ts","src/data/usecases/events/get-remoty-events/remote-get-remoty-events.ts","src/data/usecases/events/get-remoty-sectors/remote-get-remoty-sectors.ts","src/data/usecases/events/get-remoty-users/remote-get-remoty-user-events.ts","src/data/usecases/events/get-remoty-contacts/remote-get-remoty-contacts.ts","src/data/usecases/events/get-moni-events/remote-get-moni-events.ts","src/data/usecases/events/get-moni-sectors/remote-get-moni-sectors.ts","src/data/usecases/events/get-moni-users/remote-get-moni-users.ts","src/data/usecases/events/get-sowill-events/remote-get-sowill-events.ts","src/data/usecases/events/get-sowill-sectors/remote-get-sowill-sectors.ts","src/data/usecases/events/get-sowill-users/remote-get-sowill-user-events.ts","src/data/usecases/events/get-sowill-keys/remote-get-sowill-keys.ts","src/data/usecases/events/get-sowill-identifier/remote-get-sowill-identifier.ts","src/data/usecases/events/get-sigma-events/remote-get-sigma-events.ts","src/data/usecases/events/get-sigma-cloud-sectors/remote-get-sigma-cloud-sectors.ts","src/data/usecases/events/get-sigma-cloud-users/remote-get-sigma-cloud-users.ts","src/data/usecases/events/get-sigma-cloud-keys/remote-get-sigma-cloud-keys.ts","src/data/usecases/events/get-sigma-desk-sectors/remote-get-sigma-desk-sectors.ts","src/data/usecases/events/get-sigma-desk-contacts/remote-get-sigma-desk-contacts.ts","src/data/usecases/sac/get-sac-list/get-sac-list.ts","src/data/usecases/sac/create-sac/create-sac.ts","src/infra/http/axios-http-client/axios-http-client.ts","src/main/factories/http/axios-http-client-factory.ts","src/main/config/env.ts","src/main/factories/usecases/accept-digital/get-accept-digital-factory.ts","src/main/factories/usecases/accept-digital/open-url-doc-accept-factory.ts","src/main/factories/usecases/accept-digital/open-document-accept-factory.ts","src/main/factories/usecases/credit-card/get-credit-card-factory.ts","src/main/factories/usecases/credit-card/pay-with-credit-card-factory.ts","src/main/factories/usecases/credit-card/save-credit-card-factory.ts","src/main/factories/usecases/login/authentication-factory.ts","src/main/factories/usecases/login/authentication-admin-factory.ts","src/main/factories/usecases/login/get-client-by-code-factory.ts","src/main/factories/usecases/login/get-user-by-document-factory.ts","src/main/factories/usecases/login/portal-logout-factory.ts","src/main/factories/usecases/login/metrics-login-factory.ts","src/main/factories/usecases/login/forgot-password-factory.ts","src/main/factories/usecases/login/get-redes-sociais.ts","src/main/factories/usecases/login/update-password-factory.ts","src/main/factories/usecases/login/update-default-password-factory.ts","src/main/factories/usecases/login/validate-password-recovery-factory.ts","src/main/factories/usecases/nota-fiscal/get-nota-fiscal-factory.ts","src/main/factories/usecases/nota-fiscal/open-danfe-factory.ts","src/main/factories/usecases/nota-fiscal/open-nfse-factory.ts","src/main/factories/usecases/nota-fiscal/open-lease-receipt-factory.ts","src/main/factories/usecases/redes-sociais/save-redes-socias-factory.ts","src/main/factories/usecases/service-orders/add-new-os-factory.ts","src/data/builders/travel-alert-os-builder.ts","src/infra/adapters/jwt-adapter.ts","src/infra/adapters/moment-date-adapter.ts","src/main/adapters/moment-date-adapter-factory.ts","src/main/factories/usecases/service-orders/add-travel-alert-os-factory.ts","src/main/builders/travel-alert-build-factory.ts","src/main/factories/usecases/service-orders/get-service-orders-factory.ts","src/main/factories/usecases/service-orders/get-os-attendance-factory.ts","src/main/factories/usecases/service-orders/get-service-order-detail-factory.ts","src/main/factories/usecases/settings/get-unit-config-factory.ts","src/main/factories/usecases/settings/get-theme-factory.ts","src/main/factories/usecases/settings/get-units-factory.ts","src/main/factories/usecases/settings/get-prospect-configs-factory.ts","src/main/factories/usecases/settings/prospect-registration-factory.ts","src/main/factories/usecases/settings/test-email-factory.ts","src/main/factories/usecases/settings/save-unit-config-factory.ts","src/main/factories/usecases/settings/save-theme-factory.ts","src/main/factories/usecases/settings/upload-file-factory.ts","src/main/factories/usecases/settings/save-prospect-configs-factory.ts","src/main/factories/usecases/settings/get-events-settings-factory.ts","src/main/factories/usecases/settings/show-events-factory.ts","src/main/factories/usecases/settings/get-sigma-desk-connections-factory.ts","src/main/factories/usecases/sac/get-sac-list-factory.ts","src/main/factories/usecases/sac/create-sac-factory.ts","src/main/factories/usecases/financial/get-tickets-factory.ts","src/main/factories/usecases/financial/get-ticket-pix-factory.ts","src/main/factories/usecases/financial/generate-bank-slip-factory.ts","src/main/factories/usecases/financial/open-bank-slip-factory.ts","src/main/factories/usecases/financial/generate-inside-bank-slip-factory.ts","src/main/factories/usecases/financial/open-statement-of-debts-factory.ts","src/data/usecases/track/get-track/remote-get-track-list.ts","src/data/usecases/track/get-track/remote-get-details-track.ts","src/main/factories/usecases/track/get-track-list-factory.ts","src/main/factories/usecases/track/get-track-details-factory.ts","src/presentation/hooks/use-auth.ts","src/presentation/pages/Settings/components/atom.ts","src/presentation/pages/Settings/components/ActionsButtons/index.tsx","src/presentation/pages/Settings/components/FinancialSettings/styles.ts","src/presentation/pages/Settings/components/FinancialSettings/index.tsx","src/presentation/pages/Settings/components/GeneralSettings/atom.ts","src/presentation/pages/Settings/components/GeneralSettings/index.tsx","src/presentation/pages/Settings/components/EmailSendingTester/index.tsx","src/presentation/pages/Settings/components/EmailSendingTester/atom.ts","src/presentation/pages/Settings/components/InvoicesSettings/styles.ts","src/presentation/pages/Settings/components/InvoicesSettings/index.tsx","src/presentation/pages/Settings/components/ServiceOrderSettings/index.tsx","src/presentation/pages/Settings/components/PaymentAvailableToUpdate/styles.ts","src/presentation/pages/Settings/components/PaymentAvailableToUpdate/index.tsx","src/presentation/pages/Settings/components/HidePaymentMethods/styles.ts","src/presentation/pages/Settings/components/HidePaymentMethods/index.tsx","src/presentation/pages/Settings/components/MenuAccessPermissions/index.tsx","src/presentation/pages/Settings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/Settings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/Settings/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/styles.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/index.tsx","src/presentation/pages/Settings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/Settings/components/ModalOnSaveChanges/index.tsx","src/presentation/hooks/use-settings.ts","src/presentation/hooks/use-media-queries.ts","src/presentation/hooks/use-format.ts","src/presentation/hooks/use-theme.ts","src/presentation/hooks/use-image.ts","src/presentation/hooks/use-error-handler.ts","src/presentation/pages/Theme/components/atom.ts","src/presentation/pages/Theme/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/Theme/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/Theme/components/ActionsButtons/index.tsx","src/presentation/pages/Theme/components/ColorPicker/styles.ts","src/presentation/pages/Theme/components/ColorPicker/index.tsx","src/presentation/pages/Theme/components/LoginBackgroundSelector/index.tsx","src/presentation/pages/Theme/components/LogoSelector/index.tsx","src/presentation/pages/Theme/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/Theme/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/Theme/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/Theme/components/ModalOnDiscardChanges/index.tsx","src/presentation/hooks/use-theme-client.ts","src/presentation/hooks/use-notify.ts","src/presentation/pages/ProspectSettings/components/atom.ts","src/presentation/pages/ProspectSettings/components/ActionsButtons/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/styles.ts","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/index.tsx","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/atom.ts","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/styles.ts","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/index.tsx","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/atom.ts","src/presentation/pages/ProspectSettings/components/TableAreaOfInterest/index.tsx","src/presentation/hooks/use-prospect-settings.ts","src/presentation/pages/EventsSettings/components/atom.ts","src/presentation/pages/EventsSettings/components/ActionsButtons/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/atom.ts","src/presentation/hooks/use-events-settings.ts","src/presentation/components/Atoms/authentication-atom.ts","src/presentation/components/Atoms/snack-bar-atom.ts","src/presentation/components/Atoms/local-storage-atom.ts","src/presentation/components/Atoms/cookie-atom.ts","src/main/factories/cache/universal-cookie-adapter-factory.ts","src/presentation/components/Atoms/jwt-atom.ts","src/main/adapters/jwt-adapter-factory.ts","src/presentation/components/Atoms/date-atom.ts","src/presentation/components/ActionsButtons/index.tsx","src/presentation/components/BackgroundTheme/index.tsx","src/presentation/components/Chip/styles.ts","src/presentation/components/Chip/index.tsx","src/presentation/components/ChipFilter/index.tsx","src/presentation/components/CardBase/styles.ts","src/presentation/components/CardBase/index.tsx","src/presentation/components/CardList/index.tsx","src/presentation/components/CardSwitch/index.tsx","src/presentation/components/DatePicker/styles.ts","src/presentation/components/DatePicker/index.tsx","src/presentation/components/CustomDrawer/index.tsx","src/main/config/router-navigation.ts","src/presentation/pages/RedesSociais/styles.ts","src/presentation/pages/RedesSociais/index.tsx","src/main/factories/pages/admin/redes-sociais-factory.tsx","src/presentation/pages/Settings/styles.ts","src/presentation/pages/Settings/index.tsx","src/main/factories/pages/admin/settings-factory.tsx","src/presentation/styles/globals.ts","src/presentation/pages/Theme/styles.ts","src/presentation/pages/Theme/index.tsx","src/main/factories/pages/admin/theme-factory.tsx","src/presentation/pages/ProspectSettings/styles.ts","src/presentation/pages/ProspectSettings/index.tsx","src/main/factories/pages/admin/prospect-settings-factory.tsx","src/presentation/pages/EventsSettings/styles.ts","src/presentation/pages/EventsSettings/index.tsx","src/main/factories/pages/admin/events-settings-factory.tsx","src/presentation/pages/Financial/components/atom.ts","src/presentation/pages/Cartao/components/atom.ts","src/presentation/pages/Cartao/components/AddNewCreditCard/index.tsx","src/presentation/hooks/use-credit-card.ts","src/presentation/pages/Cartao/components/CreditCard/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/styles.ts","src/presentation/pages/Cartao/components/ModalEditConfirmation/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/atom.ts","src/presentation/pages/Financial/components/AddOtherCreditCard/index.tsx","src/presentation/pages/Financial/components/AddOtherCreditCard/atom.ts","src/presentation/pages/Financial/components/CardTicket/styles.ts","src/presentation/pages/Financial/components/CardTicket/index.tsx","src/presentation/pages/Financial/components/CreditCardItem/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/styles.ts","src/presentation/pages/Financial/components/PayCreditCards/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/atom.ts","src/presentation/pages/Financial/components/FiltersChipPanel/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/styles.ts","src/presentation/pages/Financial/components/ModalTicketPix/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/atom.ts","src/presentation/pages/Financial/components/SideFilters/index.tsx","src/presentation/pages/Financial/components/SideFilters/atom.ts","src/presentation/pages/Financial/components/SelectStatusTicketFilter/index.tsx","src/presentation/pages/Financial/components/SelectStatusTicketFilter/atom.ts","src/presentation/pages/Financial/components/TicketActions/index.tsx","src/presentation/pages/Financial/components/TicketView/styles.ts","src/presentation/pages/Financial/components/TicketView/index.tsx","src/presentation/pages/Financial/components/TicketView/atom.ts","src/presentation/pages/Financial/styles.ts","src/presentation/pages/Financial/index.tsx","src/main/factories/pages/financial-factory.tsx","src/presentation/pages/Login/components/atom.ts","src/presentation/pages/Login/components/ModalForgotPassword/styles.ts","src/presentation/pages/Login/components/ModalForgotPassword/index.tsx","src/presentation/pages/Login/components/ModalUserSelect/styles.ts","src/presentation/pages/Login/components/ModalUserSelect/index.tsx","src/presentation/pages/Login/components/ModalUserSelect/atom.ts","src/presentation/pages/Login/components/ModalProspectRegistration/styles.ts","src/presentation/pages/Login/components/ModalProspectRegistration/index.tsx","src/presentation/pages/Login/components/ModalProspectRegistration/atom.ts","src/presentation/components/LogoTheme/index.tsx","src/presentation/pages/Login/styles.ts","src/presentation/pages/Login/index.tsx","src/main/factories/pages/login-factory.tsx","src/presentation/pages/ServiceOrders/components/atom.ts","src/presentation/pages/ServiceOrders/components/CardOs/styles.ts","src/presentation/pages/ServiceOrders/components/CardOs/index.tsx","src/presentation/pages/ServiceOrders/components/FiltersChipPanel/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/atom.ts","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/index.tsx","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/atom.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/styles.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/index.tsx","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/atom.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/styles.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/index.tsx","src/presentation/pages/ServiceOrders/components/ModelOsView/atom.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/styles.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/index.tsx","src/presentation/pages/ServiceOrders/styles.ts","src/presentation/pages/ServiceOrders/index.tsx","src/main/factories/pages/service-orders-factory.tsx","src/presentation/pages/Home/components/atom.ts","src/presentation/pages/Home/components/ItemMenu/index.tsx","src/presentation/pages/Home/components/Menu/styles.ts","src/presentation/pages/Home/components/Menu/index.tsx","src/presentation/pages/Home/index.tsx","src/main/factories/pages/home-factory.tsx","src/presentation/pages/Cartao/styles.ts","src/presentation/pages/Cartao/index.tsx","src/main/factories/pages/card-factory.tsx","src/presentation/pages/AceiteDigital/components/atom.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/styles.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/index.tsx","src/presentation/pages/AceiteDigital/components/FiltersChipPanel/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/atom.ts","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/index.tsx","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/atom.ts","src/presentation/pages/AceiteDigital/styles.ts","src/presentation/pages/AceiteDigital/index.tsx","src/main/factories/pages/accept-digital-factory.tsx","src/presentation/pages/NotaFiscal/components/atom.ts","src/presentation/pages/NotaFiscal/components/CardNfse/styles.ts","src/presentation/pages/NotaFiscal/components/CardNfse/index.tsx","src/presentation/pages/NotaFiscal/components/FiltersChipPanel/index.tsx","src/presentation/pages/NotaFiscal/styles.ts","src/presentation/pages/NotaFiscal/components/LeaseReceipt/index.tsx","src/presentation/pages/NotaFiscal/components/NFProduct/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/atom.ts","src/presentation/pages/NotaFiscal/index.tsx","src/presentation/pages/NotaFiscal/components/NFService/index.tsx","src/main/factories/pages/nf-factory.tsx","src/presentation/pages/Sac/components/atom.ts","src/presentation/pages/Sac/components/CardSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/atom.ts","src/presentation/pages/Sac/styles.ts","src/presentation/pages/Sac/index.tsx","src/main/factories/pages/sac-factory.tsx","src/presentation/pages/Events/components/atom.ts","src/presentation/pages/Events/components/SideFilters/index.tsx","src/presentation/pages/Events/components/SideFilters/atom.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/styles.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/index.tsx","src/presentation/pages/Events/components/SelectRemotyEventCompany/index.tsx","src/presentation/pages/Events/components/SelectTypeSigmaEvent/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/index.tsx","src/presentation/pages/Events/components/FilterChipPanel/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/atom.ts","src/presentation/pages/Events/components/SectorsList/index.tsx","src/presentation/pages/Events/components/SectorsList/atom.ts","src/presentation/pages/Events/components/CardMonitoringEvent/styles.ts","src/presentation/pages/Events/components/CardMonitoringEvent/index.tsx","src/presentation/pages/Events/components/CardSector/styles.ts","src/presentation/pages/Events/components/CardSector/index.tsx","src/presentation/pages/Events/components/ContactEventList/index.tsx","src/presentation/pages/Events/components/ContactEventList/atom.ts","src/presentation/pages/Events/components/CardContact/styles.ts","src/presentation/pages/Events/components/CardContact/index.tsx","src/presentation/pages/Events/components/UserEventList/index.tsx","src/presentation/pages/Events/components/UserEventList/atom.ts","src/presentation/pages/Events/components/CardUsers/styles.ts","src/presentation/pages/Events/components/CardUsers/index.tsx","src/presentation/pages/Events/components/SelectSowillKey/atom.ts","src/presentation/pages/Events/components/SelectSowillKey/index.tsx","src/presentation/pages/Events/styles.ts","src/presentation/pages/Events/index.tsx","src/main/factories/pages/events-factory.tsx","src/main/factories/usecases/events/print-events-factory.ts","src/main/factories/usecases/events/get-remoty-events-factory.ts","src/main/factories/usecases/events/get-remoty-sectors-factory.ts","src/main/factories/usecases/events/get-remoty-users-factory.ts","src/main/factories/usecases/events/get-remoty-contacts-factory.ts","src/main/factories/usecases/events/get-moni-events-factory.ts","src/main/factories/usecases/events/get-moni-users-factory.ts","src/main/factories/usecases/events/get-moni-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-events-factory.ts","src/main/factories/usecases/events/get-sowill-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-users-factory.ts","src/main/factories/usecases/events/get-sowill-keys-factory.ts","src/main/factories/usecases/events/get-sowill-identifier-factory.ts","src/main/factories/usecases/events/get-sigma-events-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-users-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-keys-factory.ts","src/main/factories/usecases/events/get-sigma-desk-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-desk-contacts-factory.ts","src/presentation/pages/TravelAlert/components/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddResponsible/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddVehicle/atom.ts","src/presentation/pages/TravelAlert/components/ResponsiblesPanel/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/atom.ts","src/presentation/pages/TravelAlert/components/VehiclePanel/index.tsx","src/presentation/pages/TravelAlert/styles.ts","src/presentation/pages/TravelAlert/index.tsx","src/main/factories/pages/travel-alert-factory.tsx","src/presentation/pages/ServiceOrderDetail/components/atom.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/styles.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/index.tsx","src/presentation/pages/ServiceOrderDetail/styles.ts","src/presentation/pages/ServiceOrderDetail/components/ClientInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsProducts/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTotalizer/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTreatments/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsSignatures/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsImages/index.tsx","src/presentation/pages/ServiceOrderDetail/index.tsx","src/main/factories/pages/service-order-detail-factory.tsx","src/presentation/pages/Track/styles.ts","src/presentation/pages/Track/atom.ts","src/presentation/pages/Track/components/CardTrack/styles.ts","src/presentation/pages/Track/components/CardTrack/index.tsx","src/presentation/pages/Track/components/TrackDetails/styles.ts","src/presentation/pages/Track/components/TrackDetails/index.tsx","src/presentation/pages/Track/components/TrackDetails/atom.ts","src/presentation/pages/Track/index.tsx","src/main/factories/pages/track-factory.tsx","src/presentation/pages/Contract/components/atom.ts","src/presentation/pages/Contract/styles.ts","src/presentation/pages/Contract/components/CompanyCard/index.tsx","src/presentation/pages/Contract/components/ContractCard/index.tsx","src/presentation/pages/Contract/components/ModalContractDetails/index.tsx","src/presentation/pages/Contract/index.tsx","src/main/factories/pages/contract-factory.tsx","src/presentation/pages/StatementOfDebts/components/atom.ts","src/presentation/pages/StatementOfDebts/styles.ts","src/presentation/pages/StatementOfDebts/index.tsx","src/main/factories/pages/statement-of-debts-factory.tsx","src/presentation/components/DrawerNavigator/index.tsx","src/presentation/components/Loading/index.tsx","src/presentation/components/Logout/styles.ts","src/presentation/components/Logout/index.tsx","src/presentation/components/Logout/atom.ts","src/presentation/components/InputField/index.tsx","src/presentation/components/InstallButton/index.tsx","src/presentation/components/InstallationSuggestion/styles.ts","src/presentation/components/InstallationSuggestion/index.tsx","src/presentation/components/InstallationSuggestion/atom.ts","src/presentation/components/Header/index.tsx","src/presentation/components/ConfigSlider/index.tsx","src/presentation/components/NoResultMessage/styles.ts","src/presentation/components/NoResultMessage/index.tsx","src/presentation/components/PageHeader/index.tsx","src/presentation/components/PixIcon/index.tsx","src/presentation/components/Footer/index.tsx","src/presentation/components/LogoTheme/atom.ts","src/presentation/components/MenuActions/index.tsx","src/presentation/components/MessageBlock/index.tsx","src/presentation/components/ModalBase/index.tsx","src/presentation/components/NotificationButton/index.tsx","src/presentation/components/OutdatedError/index.tsx","src/presentation/components/Router/index.tsx","src/presentation/components/SocialMidias/index.tsx","src/presentation/components/SocialMidias/atom.ts","src/presentation/components/SnackBar/index.tsx","src/presentation/components/SnackBarProvider/index.tsx","src/presentation/components/SideFilterDrawer/styles.ts","src/presentation/components/SideFilterDrawer/index.tsx","src/presentation/components/Select/styles.ts","src/presentation/components/Select/index.tsx","src/presentation/components/ScrollToTopButton/index.tsx","src/presentation/components/TextInput/styles.ts","src/presentation/components/TextInput/index.tsx","src/presentation/components/UserMenu/styles.ts","src/presentation/components/UserMenu/index.tsx","src/presentation/components/UnitsSelector/atom.ts","src/presentation/components/UnitsSelector/index.tsx","src/presentation/components/UserMenu/atom.ts","src/presentation/components/RecoveryPassword/atom.ts","src/presentation/components/RecoveryPassword/styles.ts","src/presentation/components/RecoveryPassword/index.tsx","src/presentation/components/UpdatePassword/atom.ts","src/presentation/components/UpdatePassword/styles.ts","src/presentation/components/UpdatePassword/index.tsx","src/presentation/components/TabBottomNavigator/index.tsx","src/main/config/clarity.js","src/presentation/components/TimePicker/index.tsx","src/presentation/components/CardRow/index.tsx","src/presentation/components/CardDetails/index.tsx","src/presentation/components/PhoneModal/atom.ts","src/presentation/components/PhoneModal/index.tsx","src/main/App.tsx","src/main/AppEntry.js"],"names":["HttpStatusCode","ClientMonitoringType","ClientModality","cardMaskByFlag","mastercard","visa","amex","diners","discover","unknown","ServiceOrderDetailStatus","ServiceOrderStatus","ServiceOrderPriority","ServiceOrderModality","BANK","FuelType","GenerateInsideBankSlip","RN","TOTAL_DAYS_BEFORE_NEW_UPDATE","GetTickets","DEFAULT_DAYS_LATER","DEFAULT_DAYS_AGO","DEFAULT_YEARS_AGO","DEFAULT_STATUS","LIMIT_SHOW_ITEMS","SHOW_ONLY_PENDING","OpenStatementOfDebts","FOLDER_DEFAULT_PDF","GetDigitalAccepts","GetNFs","DEFAULT_MONTHS_AGO","OpenDanfe","FOLDER_DEFAULT_PDF_DANFE","OpenNfse","FOLDER_DEFAULT_NFSE","OpenLeaseReceipt","FOLDER_DEFAULT_LEASE_RECEIPT","module","exports","GetRemotyEvents","GetMoniEvents","GetSigmaEvents","DEFAULT_DAYS","DEFAULT_FILTER_TYPE","DEFAULT_FILTER_TITLE","GetServiceOrders","AddTravelAlertResponsibleType","OBSERVATION_MAX_LENGTH","DEFAULT_MONTH_AGO","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","palette","white","black","primaryLighten","primaryLight","primary","primaryDark","primaryDarken","secondaryLight","secondary","secondaryDark","secondaryContainer","error","success","successContainer","divider","background","backgroundCard","backgroundSearch","backgroundMenu","backgroundInput","backgroundPortal","greyLighten","greyLight","grey","greyDark","greyDarken","greyDarken2","textsLighten","textsLight","texts","textsDark","info","infoContainer","pink","theme","name","colors","_objectSpread","DefaultTheme","universalCookies","Cookies","UniversalCookieAdapter","_createClass","_classCallCheck","key","value","set","path","remove","get","LocalStorageAdapter","localStorage","setItem","JSON","stringify","removeItem","getItem","parse","makeLocalStorageAdapter","InvalidCredentialsError","_Error","message","_this","_callSuper","_inherits","_wrapNativeSuper","InvalidRelationCompany","UnexpectedError","UnexpectedResultFormatError","AccessDeniedError","ForbiddenError","ResultWithoutRecordsError","SamePasswordError","NotFoundError","RemoteAuthentication","url","httpClient","_auth","_asyncToGenerator","params","dataParams","grant_type","portal","authParams","this","method","body","headers","_yield$this$httpClien","request","statusCode","ok","badRequest","error_description","unauthorized","_x","apply","arguments","RemoteAuthenticationAdmin","identificadorAplicacao","IdentificadorAplicacao","mapToModel","forbidden","authenticationAdmin","data","access_token","token","RemoteGetUser","httpCliente","_getUsersByDocument","length","RemoteForgotPassword","httpPostClient","_requestAccess","_yield$this$httpPostC","RemotePortalLogout","_logout","RemoteMetricsLogin","_register","acao","plataforma","RemoteMetricsLogoff","RemoteGetClientByCode","_getByCode","RemoteGetClientContract","_getContract","RemoteUpdatePassword","_update","confirmacaoSenha","_objectWithoutProperties","_excluded","senhaAtual","novaSenha","RemoteUpdateDefaultPassword","_changePassword","RemoteValidatePasswordRecovery","_validate","codigoCliente","RemoteGetCreditCard","_getByClient","expiracao","split","substring","noContent","RemoteSaveCreditCard","_save","formatExpiration","expiration","currentYear","Date","getFullYear","toString","RemotePayWithCreditCard","_pay","duplicata","cartao","notAcceptable","RemoteGetTickets","_get","RemoteGetTicketPix","_getPix","RemoteGenerateBankSlip","_generate","BoletoInside","CartaoInside","includes","codBanco","RemoteGenerateInsideBankSlip","dateAdapter","generateBankSlip","registrado","linkBoleto","dtVencimento","generateParams","dates","startDate","today","endDate","diffInDays","original","generate","RemoteOpenBankSlip","generateInsideBankSlip","_openPDF","bankSlipUrl","_defineProperty","Caixa","Sicredi","Itau","Bradesco","Santander","Sicoob","Banestes","window","open","RemoteOpenStatementOfDebts","_openPaymentReport","RemoteGetTheme","RemoteGetUnitConfig","_getAll","RemoteGetUnits","RemoteGetProspectConfigs","RemoteSaveTheme","unitCode","codigoUnidade","_x2","RemoteSaveUnitConfig","config","RemoteProspectRegistration","email","bodyParams","origemSistema","fichaCadastral","status","usuario","codProspect","RemoteTestEmail","_test","RemoteUploadFile","_upload","formData","FormData","append","file","scope","ContentType","RemoteSaveProspectConfig","RemoteGetEventsSettings","RemoteShowEvents","_show","RemoteGetSigmaDeskConnections","mapToGeneric","connections","connection","codigo","descricao","banco","idSigma","isSelected","RemoteGetNFs","httpGetClient","_yield$this$httpGetCl","RemoteOpenDanfe","_open","cliCodigo","RemoteOpenNfse","linkAutenticidade","utilizarDevExpress","producao","RemoteOpenLeaseReceipt","RemoteAddNewOs","_add","avisoViagem","Aberta","tipo","ManutencaoCorretiva","prioridade","Normal","RemoteAddTravelAlertOs","travelAlertBuilder","observacoes","setDates","dataSaida","horaSaida","dataRetorno","horaRetorno","requester","solicitante","emailRequester","phone1Requester","telefone1","phone2Requester","telefone2","addResponsibles","chavesSomenteComCentral","responsaveisChave","addAuthorized","possuiAutorizados","autorizados","addVehicles","possuiVeiculosCuidadosCentral","veiculos","addRecommendations","recomendacoes","build","cliente","empresa","modalidade","RemoteGetServiceOrders","RemoteGetOsAttendance","_getAttendences","RemoteGetServiceOrderDetail","_getDetail","RemoteGetRedesSociais","_getRedesSociais","RemoteSaveRedesSociais","RemoteGetAcceptDigital","RemoteOpenUrlDocAccept","_view","statusAceite","urlAceite","hash","indexOf","enviarEmail","certificadoHtml","Blob","type","html","URL","createObjectURL","RemoteOpenDocumentAccept","codigoAceite","RemotePrintEvents","_print","tipoConexao","oldUrlIndex","toLowerCase","newUrl","RemoteGetRemotyEvents","_getEvents","eventsRaw","events","remotyEvent","_remotyEvent$event","_remotyEvent$event2","_remotyEvent$event3","evento","event","codEvent","nmEvent","dataEvento","dtEventFormatted","aux","idEvent","nmPanelUser","RemoteGetRemotySectors","_getSectors","sectors","sector","nome","nmZone","idEquipamento","idEquipmentZone","codZone","ativo","flActive","RemoteGetRemotyUserEvents","_getUsers","maptoGeneric","users","user","nmUserPassword","RemoteGetRemotyContacts","_getContacts","contacts","contact","idUsuario","idDevice","nomeUsuario","nmDeviceUser","fone1","nmDevicePhone","fone2","nmDevicePhone2","idDispositivo","deviceGroup","idDeviceGroup","nomeDispositivo","nmDeviceGroup","RemoteGetMoniEvents","codigoOcorrencia","ocorrencia","format","dataHora","RemoteGetMoniSectors","sectorsRaw","equipamento","codigoZona","RemoteGeMoniUsersEvents","usersRaw","codCliente","dddFone","dddCelular","celular","RemoteGetSowillEvents","IdCliente","idCliente","codInternoChave","dateTimeInicioManutencao","sowillEvent","description","account","RemoteGetSowillSectors","_getZones","CodInternoChave","numeroSerie","observacao","auxiliar","RemoteGetSowillUsers","_user$nroUserSistema","usuarioAlarme","nroUserSistema","RemoteGetSowillKeys","_getKeys","RemoteGetSowillIdentifier","_getIdentifier","RemoteGetSigmaEvents","sigmaEvent","RemoteGetSigmaCloudSectors","descProduto","idEvento","cdCliente","cdEvento","obs","RemoteGetSigmaCloudUsers","usuarios","RemoteGetSigmaCloudKeys","RemoteGetSigmaDeskSectors","_getSector","RemoteGetSigmaDeskContacts","idFuncao","descFuncao","RemoteGetSacList","RemoteCreateSac","_create","sacParams","isPortal","AxiosHttpClient","localStorageAdapter","_request","_this$localStorageAda","axiosResponse","axios","Authorization","_error$response","_error$response2","response","makeAxiosHttpClient","API_URL","API_PROJETOS","API_LOGIN_URL","API_LOGIN_IDENTIFICADOR_APP","CLARITY_KEY","METRICS_LOG_IN_OUT","FIREBASE_PUBLIC_KEY_VAPID","makeGetAcceptDigital","env","makeOpenUrlDocAcceptFactory","makeOpenDocumentAcceptFactory","makeGetCreditCard","makePayWithCreditCard","makeSaveCreditCard","makeAuthentication","makeAuthenticationAdmin","identificadorAplicação","makeGetClientByCode","makeGetUser","makePortalLogout","makeMetricsLogin","makeForgotPassword","makeGetRedesSociais","makeUpdatePassword","makeUpdateDefaultPassword","makeValidatePasswordRecovery","makeGetRemoteGetNFs","makeOpenDanfe","makeOpenNfse","makeOpenLeaseReceipt","makeSaveRedesSociais","makeAddNewOs","TravelAlertBuilder","observation","line","horaMinutoSaida","horaMinutoRetorno","_horaMinutoSaida$spli","_horaMinutoSaida$spli2","_slicedToArray","minutoSaida","_horaMinutoRetorno$sp","_horaMinutoRetorno$sp2","minutoRetorno","dateStart","setHours","parseInt","setMinutes","dateEnd","dataSaidaFormatada","dataRetornoFormatada","addLine","phone","responsible","endereco","chavesSomenteComCentralMonitoramento","responsibles","forEach","resp","addResponsible","_this2","vehicle","_this3","placa","possuiResponsaveis","responsaveis","authorized","vehicles","_this4","addVehicle","recommendations","JwtAdapter","jwt_decode","moment","locale","MomentDateAdapter","diff","startOf","date","toDate","dateFormat","undefined","days","initDate","subtract","years","add","month","makeDateAdapterFactory","makeAddTravelAlertOs","makeGetServiceOrders","makeGetOsAttendance","makeGetServiceOrderDetail","makeGetUnitConfig","makeGetTheme","makeGetUnits","makeGetProspectConfigs","makeProspectRegistration","makeTestEmail","makeSaveUnitConfig","makeSaveTheme","makeUploadFile","makeSaveProspectConfigs","makeGetEventsSettings","makeShowEvents","makeGetSigmaDeskConnectionsFactory","makeGetSacList","makeCreateSac","makeGetTickets","makeGetTicketPix","makeGenerateBankSlip","makeOpenBankSlip","makeGenerateInsideBankSlip","makeOpenStatementOfDebts","RemoteGetTrackList","_getTrackList","trackRaw","track","codInterno","CodInterno","Id","Placa","RemoteGetDetailTrack","_getDetails","trackDetails","cor","Cor","ano","Ano","modelo","Modelo","combustivel","Combustivel","toUpperCase","makeGetTrackListFactory","makeGetTrackDetailsFactory","EMMITERS_AUTHORIZED","ROLES_AUTHORIZED","useAuth","notify","useNotify","_useRecoilState","useRecoilState","authenticationState","_useRecoilState2","autentication","setAuthentication","useRecoilValue","localStorageState","jwtAdapter","jwtAdapterAtom","dateAdapterAtom","isAdmin","useCallback","accessToken","tokenDecode","decode","currentClient","sub","loginWithCode","test","endsWith","logout","client","registerLogin","getCurrentClient","getClient","accessTokenDecode","codeClient","nomeCliente","isNaN","isSignedIn","_autentication$access","_autentication$access2","expireDate","auth","iss","roles","every","role","setUTCSeconds","exp","isExpired","hadAccessToken","version","catch","console","setClient","currentState","login","getAddress","adressCode","_client$enderecoAlter","enderecoAlternativo","find","address","getSaveUser","savedUser","username","saveUsername","saveUser","isLoadingState","atom","default","currentUnitSettingsState","unitsSettingsState","initialConfigsState","financialConfigsState","generalConfigsState","invoiceConfigsState","serviceOrderConfigsState","menuAccessPermissionsConfigsState","configsState","selector","_ref","financialConfigs","generalConfigs","invoiceConfigs","serviceOrderConfigs","menuAccessPermissionsConfigs","liberacoesPortal","ActionsButtons","useTheme","setOpenSaveConfig","useSetRecoilState","isOpenSaveConfigState","setOpenDiscardConfig","isOpenDiscardConfigState","_jsx","Card","style","styles","cardContainer","elevation","children","_jsxs","HStack","reverse","spacing","Button","title","color","tintColor","onPress","variant","StyleSheet","create","margin","padding","borderRadius","display","flexDirection","justifyContent","container","flex","containerHeader","headerText","headerChip","backgroundColor","marginBottom","marginTop","marginRight","marginLeft","cardContainerMobile","cardContent","FinancialSettings","getThemeClient","useThemeClient","setFinancialConfig","_useState","useState","initialFinancialConfigs","themeClient","handleChange","param","Box","ScrollView","_Fragment","permitePagamentoCartao","CardSwitch","text","boletoInside","validaCartaoCredito","handleSwitch","atualizaAutomaticoCartao","visualizaFaturaCartaoVencida","bolEntradaConfirmada","bolExibeOriginal","bolAtualizaBoletos","PaymentAvailableToUpdate","bolOcultaFormasPgto","HidePaymentMethods","exibeAlteracaoCartao","TextInput","mode","activeUnderlineColor","mainColor","label","underlineColorAndroid","underlineColor","emailAlteracaoCartao","onChangeText","maxLength","pagamentoCartaoAtivo","Loading","initialGeneralConfigsState","GeneralSettings","testEmail","setGeneralConfig","_useRecoilState3","_useRecoilState4","initialGeneralConfigs","setInitialGeneralConfigs","useEffect","hasChanged","EmailSendingTester","copia","enviaEmailViagem","emailViagem","exibeChavesAvisoViagem","visualizaDetalhesContrato","readonly","limiteDiasVisualizaCritica","dias","_useState2","mailSended","setMailSended","_useState3","_useState4","responseMail","setResponseMail","_useRecoilState5","isLoadingTestMailState","_useRecoilState6","isLoadingTestMail","setLoadingTestMail","Stack","direction","justify","items","trailing","props","MaterialIcons","testEmailParams","then","isValid","finally","loading","disabled","pt","size","Text","InvoicesSettings","setInvoiceConfig","initialInvoiceConfigs","handleChangeConfig","nfsOcultarInfos","nfsOcultarLink","ServiceOrderSettings","setServiceOrderConfig","initialServiceOrderConfigs","utilizaEmpresaPadrao","empresaPadraoOS","exibirOsFechadas","osSemTecnico","limitaOs","abrirOsSemFaturamento","osEmpresaPadrao","exibeMensagemAbrirOs","mensagemAberturaOs","enviarAvisoAberturaOs","emailOs","generalContainer","alignItems","selectorContainer","width","selectorContainerMobile","selectBox","selectBoxMobile","titleBox","textAlign","fontWeight","fontSize","optionBox","optionSelectorChip","border","cursor","optionIcon","optionText","overflow","whiteSpace","textOverflow","tooltip","isMobile","useMediaQueries","setFinancialConfigs","handleChoosePaymentForm","codFormaPagamento","update","formasPagamentoAtualiza","formasPagamentoNaoAtualiza","formaPagamentoSelecionada","formaPagamento","Number","filter","concat","_toConsumableArray","newConfig","assign","onDrag","dataTransfer","setData","onDrop","getData","handleClick","acceptDrop","preventDefault","onDragOver","draggable","onDragStart","onClick","MaterialCommunityIcons","item","hide","formasPagamento","formasPagamentoOculta","formasPagamentoOcultas","MenuAccessPermissions","setMenuAccessPermissionsConfig","initialMenuAccessPermissionsConfigs","handleChangeSetting","aceiteDigital","contrato","documentosUteis","boleto","notaFiscal","monitoramento","os","rastreamento","sac","telefonesUteis","viagem","gap","buttonArea","ModalOnDiscardChanges","isOpen","setOpen","discardChanges","useSettings","handleClose","ModalBase","visible","onClose","shadow","show","isOpenSaveOrDiscardConfigState","isLoadingSaveOrDiscardConfigState","ModalOnSaveOrDiscard","saveUnitConfig","currentConfig","isLoading","setLoading","setInitialConfigs","save","hasUpdated","uniCodigo","padStart","isLoadingSaveConfigState","flexWrap","ModalOnSaveChanges","startConfig","handleSaveChanges","initialConfigs","setGeneralConfigs","setInvoiceConfigs","setServiceOrderConfigs","setMenuAccessPermissionsConfigs","assuntoEmailConfirmacaoPgto","mensagemSMSConfirmacaoPgto","mensagemEmailConfirmacaoPgto","uniUnidade","emailAlteracaoCadastro","emailSac","chaveResidencia","exibeAlteracaoCadastro","conPorCodigo","servidorSmtp","autentica","senha","porta","ssl","leitura","enviaListaChave","exibeAvisoAberturaOs","avisoAberturaOs","Dimensions","height","openInPWA","matchMedia","matches","openInIOS","navigator","userAgent","appBarHeight","APP_BAR_HEIGTH","PADDING_STATUS_BAR_IOS","useFormat","formatCurrency","amount","Intl","NumberFormat","currency","removeNewLines","replace","validateCPF","cpf","cpfNumeros","soma","i","resto","digito1","digito2","useThemePaper","useImage","getImage","image","_image$split$pop","defaultImage","pop","shift","imageFolder","fetch","log","logo","DEFAULT_PATH_IMAGES","base64toFile","b64Data","fileName","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","push","blob","File","useErrorHandler","callback","unitsThemeState","initialTheme","menuColor","loginColor","buttonSave","initialThemeState","themeState","colorSelect","selectedLogoState","selectedBackgroundState","modalOnDiscardChangesThemeState","modalOnSaveChangeThemeState","firstRecording","setOpenDiscardChanges","setOpenSaveChanges","input","outlineWidth","inputColor","ColorPicker","setThemeClient","inputStyle","editable","onChange","target","LoginBackgroundSelector","setTheme","setSelectedBackground","setBackground","backgroundImage","uri","require","handlePickImage","_ref2","result","ImagePicker","mediaTypes","Images","allowsEditing","aspect","quality","canceled","_result$assets","_result$assets$0$uri","_result$assets2","base64Background","assets","getMilliseconds","bgLogin","TouchableOpacity","activeOpacity","center","VStack","mb","p","fill","Image","resizeMode","source","maxWidth","LogoSelector","setSelectedLogo","setLogo","logoImage","base64Logo","imageLogo","borderColor","borderWidth","borderStyle","saveTheme","uploadFile","selectedLogo","selectedBackgroundLogo","isOpenSaveChanges","resetSelectedLogo","useResetRecoilState","resetSelectedBackgroundLogo","currentUnit","handleError","upload","themeResult","isOpenDiscardChanges","setInitialTheme","selectedBackground","_document","themeColorClient","document","querySelector","setAttribute","snackBarProviderState","messages","setMessages","options","newMessage","duration","currentMessages","setTimeout","dimiss","messageId","initialProspectConfigsState","prospectConfigsState","moduloLiberado","listaInteresse","prospectInterestAreaState","prospectUnitsState","saveProspectConfigs","useProspectSettings","prospectConfigs","areaInterests","handlerError","newProspectConfigs","areaInteresse","content","ModalAddConfigUnit","_areaInterest$interes2","_prospectConfigs$list","isOpenAddConfigUnitState","addConfigUnitState","areaInterest","setAreaInterest","isDuplicatedOptionSate","isDuplicated","setIsDuplicated","units","_useRecoilState7","isOpenSelectUnitState","_useRecoilState8","isOpenSelectUnit","setOpenSelectUnit","_useRecoilState9","isOpenSelectInterestState","_useRecoilState10","isOpenSelectInterest","setOpenSelectInterest","areaInterestsList","setProspectInterestAreaList","reset","existUnit","some","interest","unidade","interesse","descreve","handleInputChange","MessageBlock","Select","Trigger","onOpen","minWidth","textContentType","_areaInterest$interes","isValidEmail","validValues","newInterestArea","currentInterestAreaList","Modal","unit","onSelect","_","_areaInterest$interes3","ModalDeleteOption","isOpenDeleteProspectOptionState","deleteOption","deleteProspectOptionState","setAreaInterests","resetDeleteOption","prevInterests","TableAreaOfInterest","setDeleteOptionOpen","setDeleteOption","DataTable","Header","Title","area","index","Row","pointerEvents","Cell","centered","interestArea","setProspectConfigs","setProspectInterestArea","intialProspectConfigs","configs","initialEventsSettingsState","eventsSettingsState","sigmaDeskConnectionsState","isOpenConnectionMenuState","isOpenSaveSettingsState","isOpenDiscardSettingsState","showEvents","useEventsSettings","eventsSettings","isLoadingSaveSettingsState","listaExibidos","EventsSettings","setEventsSettings","initialEventsSettings","eventosExibidos","listaTipos","oculto","treatedBody","position","bottom","right","BackgroundTheme","backgroundEmpresa","setBackgroundEmpresa","backgroundDefault","ImageBackground","opacity","alignSelf","lineHeight","Chip","containerStyle","textStyle","_ref$variant","containerStyles","filled","outlined","textStyles","ChipPaper","testID","ChipFilter","subtitle","paddingHorizontal","paddingVertical","cardBase","CardBase","Content","CardList","isEmpty","textEmpty","textLoading","containerMobile","NoResultMessage","flexGrow","_ref$showIfValueFalsy","showIfValueFalsy","themeCliente","showChildren","cardContentHeader","Switch","onValueChange","cardChildren","marginVertical","marginHorizontal","paddingLeft","paddingRight","DatePicker","initYear","finalYear","INITIAL_YEAR","useMemo","FINAL_YEAR","DatePickerInput","inputMode","startYear","endYear","withDateFormatInLabel","inputEnabled","CustomDrawer","socialMidias","socialMediaState","DrawerContentScrollView","contentContainerStyle","paddingTop","DrawerItemList","pv","SocialMidias","NavigationRoute","handleScreenPath","screen","screensClientNavigator","_screensClientNavigat","Home","Financial","Invoices","SAC","DigitalAccepts","ServiceOrders","CreditCard","TravelAlert","PhoneUtils","DocumentsUtils","Monitoring","Track","OsDetail","Contract","StatementOfDebts","ChangePassword","RecoveryPassword","screensAdminNavigator","Login","Theme","Configs","SocialMedia","ProspectSettings","footer","RedesSociais","saveRedesSociais","getRedesSociais","state","setState","useFocusEffect","res","prevState","leading","Icon","as","whatsapp","facebook","linkedin","instagram","tiktok","telegram","Footer","saveParams","youtube","makeRedesSociaisFactory","textTransform","Tab","createMaterialTopTabNavigator","Settings","getUnitConfigs","getUnits","setUnits","getAll","getConfigParams","codUnidade","unitConfig","SafeAreaView","OutdatedError","UnitsSelector","Navigator","screenOptions","tabBarItemStyle","tabBarLabelStyle","tabBarIndicatorStyle","tabBarStyle","Screen","tabBarLabel","component","makeSettingsFactory","layoutStyles","pageContent","scroll","paddingBottom","footerContainer","toolbar","getTheme","_useThemeClient","logoEmpresa","setLogoEmpresa","setCurrentUnit","getThemeParams","fonte","wrap","m","makeThemeFactory","getProspectConfigs","_useProspectSettings","setAddOptionOpen","PageHeader","icon","Checkbox","makeProspectSettingsFactory","headerContainer","_events$listaExibidos","_events$listaTipos","getSigmaDeskConnections","getEventsSettings","setConnections","isOpenConnectionMenu","setOpenConnectionMenu","_useEventsSettings","setEvents","resetEvents","handleBounceEvent","codEvento","eventosTodos","selectedEvent","getSelectedConnection","selectedConnection","handleGetEvents","InputField","fontStyle","eventoExibido","codigoExibicao","Divider","eventoComum","updatedConnections","handleSelectConnection","makeEventsSettingsFactory","isLoadingFinancialState","isLoadingOpenBankSlip","ticketsState","isEditableState","creditCardState","ccv","mask","numero","AddNewCreditCard","_creditCard$expiracao","isEditable","_useCreditCard","getCreditCardType","creditCardNumber","maskCreditCardNumber","maskCreditCardValidity","cleanedText","isValidExpiration","creditCard","setCreditCard","formArea","keyboardType","placeholder","helperText","card","minHeight","insideLogo","chipCard","mt","letterSpacing","shadowColor","shadowOffset","shadowRadius","ModalModalEditConfirmation","isOpenEditConfirmationState","setEditable","AddOtherCreditCard","isOpenAddOtherCreditCardState","otherCreditCardState","otherCreditCard","setOtherCreditCard","errorAddOtherCreditCardState","setError","setOpenTicketView","isOpenTicketViewState","setCreditCards","creditCardsState","handleResetCard","vencimento","isValidDataCard","mv","errorContainer","borderLeftWidth","borderLeftColor","pr","backgroundPosition","backgroundSize","backgroundRepeat","statusIcon","textStatus","CardTicket","ticket","openBankSlip","_ref$current","current","setCurrentTicketPix","currentTicketPixState","setOpenPix","isOpenTicketPixState","setTicketView","ticketViewState","handleCopyBarCode","Clipboard","setString","linhaDigitavel","handleOpenPDFBankSlip","nossoNumero","novaVersao","openPDF","handleOpenPix","statusColor","paga","vencida","venceHoje","situacao","textStatusStyles","amountStyles","makeTags","saldo","atraso","makeOpened","IconButton","PixIcon","CopyIcon","handleOpenTicketView","valorDuplicata","CreditCardItem","_ref$isEditable","creditCardSelectedState","creditCardSelected","setCreditCardSelected","PayCreditCards","_creditCardSelected$n","_client$listaCartoes","payWithCreditCard","isPaymentConfirmation","setPaymentConfirmation","isLoadingCreditCardsState","isOpenCreditCardsState","setOpenOtherCreditCard","ticketView","listaCartoes","valorAtualizado","maxHeight","pay","FiltersChipPanel","isOpenFinancialFiltersState","filters","ticketsFiltersState","period","dataInicio","dataFim","situation","Todas","Pagas","ModalTicketPix","_ticket$numero","_ticket$numero2","getTicketPix","currentTicketPix","isLoadingTicketPixState","tickets","pix","setPix","setTicket","isHttps","location","protocol","handleGetPix","codInternoDuplicata","getPix","QRCodeSvg","logoSize","logoBackgroundColor","nativeID","selectTextOnFocus","getElementById","focus","SideFilters","getTickets","setFilters","errorHandler","setTickets","yearsAgo","daysLater","handleChangeDate","field","currentFilters","SideFilter","Drawer","onSubmit","paramsGetTicket","dataInicial","dataFinal","resetState","daysAgo","SelectStatusTicketFilter","statusTicket","statusTicketState","statusOption","RadioButton","Item","selectedStatus","labelStyle","_id","TicketActions","setOpenTicketViewState","isLoadingTicketViewState","setOpenCreditCards","permiteCartaoCredito","dupProtestada","INFO_INSIDE_SLIP_BANK","TicketView","_ticketView$nomeForma","_ticketView$nomeForma2","_ticketView$nomeForma3","_ticketView$nomeForma4","isPayCreditCard","setPayCreditCard","daysOfArrears","colorSituationStyle","titleSituation","styleStatusSituation","descriptionSituation","dataPagamento","valorPago","descriptionInsideSlipBank","dataEmissao","nomeFormaPagto","trim","_tickets$find","refreshing","setRefreshing","scrollViewRef","useRef","RN_TOTAL_ITEMS_SHOW","currentTicket","getMonth","orderTickets","paraGetTickets","scrollToTop","scrollTo","y","animated","handleOnFilter","ref","refreshControl","RefreshControl","onRefresh","openFilters","ScrollToTopButton","targetRef","makeFinancialFactory","navigation","TabBottomNavigator","isOpenForgotPasswordState","loginState","password","recoveryEmail","ModalForgotPassword","forgotPassword","handleCloseModal","currentValues","requestAccess","ModalUserSelect","authentication","usersSelectState","setUsersSelect","isOpenUserSelect","handleCancel","authToken","handleLogin","List","left","titleStyle","ModalProspectRegistration","prospectRegistration","prospectRegistrationState","isOpenProspectRegistrationState","selectedInterestAreaState","selectedInteresetArea","setSelectedInterestArea","isOpenInterestAreaState","isOpenAreaIntereset","setOpenAreaInterest","isLoadingProspectRegistrationState","interesetArea","resetInteresetArea","handleChangeInput","fone","emailUrl","cep","numeroEndereco","complemento","cidade","estado","bairro","register","_state$fone","isValidForm","codDEInteresse","fax","LogoTheme","logoEmpresaState","isSvg","src","loginContent","form","checkboxArea","snackbar","getUser","validatePasswordRecovery","updateDefaultPassword","_useAuth","setSelection","setModalUserSelect","setOpenUserSelect","setOpenForgotPassword","prospectInterestArea","socialMedia","handleSubmit","dataAuth","toLocaleLowerCase","loginWithAdministrator","Email","Senha","loginWithDocument","getUsersByDocument","clients","_ref3","onSurfaceVariant","textColor","render","NativeTextInput","onKeyPress","secureTextEntry","uncheckedColor","RecoveryPasswordC","makeLoginFactory","isLoadingServiceOrdersState","serviceOrdersState","serviceOrdersConfigsState","bloqueiaAberturaLimite","portalExibeMensagem","portalMensagem","headerStyles","textOrderStyles","CardOs","serviceOrder","setOsView","serviceOrderViewState","codEndereco","textTitleStyles","colorStatusStyle","A","B","F","ordem","CircleIcon","dataAbertura","dataFechamento","MarkerIcon","currentOs","handleAddNewOs","isOpenServiceOrdersFiltersState","serviceOrdersFiltersState","Fechadas","getServiceOrders","serviceOrdersConfigs","setServiceOrdersConfig","setServiceOrders","monthAgo","paramsGetOrders","serviceOrders","listaOS","SelectStatusOsFilter","statusOSs","statusOSsState","ModalAddNewOs","_formatAddress","_client$enderecoAlter2","addNewOs","addNewOsState","addNewOS","setAddNewOs","isOpenAddNewOS","isLoadingAddNewOS","isOpenAddressNewOSState","isOpenAddressNewOS","setOpenAddressNewOS","resetAddNewOs","successNewOs","createSacParams","listNewServiceOrders","formatAddress","addressCode","inputContainerStyle","multiline","numberOfLines","addNewOsParams","itemsColor","_formatAddress2","ModalOsView","_serviceOrder$current2","_serviceOrder$current3","_serviceOrder$current4","_serviceOrder$current5","_serviceOrder$current6","_serviceOrder$current7","getOsAttendance","isLoadingOsViewState","_serviceOrder$current","getAttendences","codigoOs","attendances","OSIcon","identificacao","OsAttendandes","attendancesContainer","titleAttendances","attendancesText","_serviceOrder$attenda","attendance","nomeTecnico","dataTermino","setOpenAddNewOs","FAB","makeServiceOrdersFactory","colorsPage","ItemMenu","page","_useMediaQueries","iconPage","route","navigate","iconContainer","iconContent","itemUser","ITEMS_EXCLUDES","Menu","itemsMenu","accessibilityLabel","getClientByCode","metricsLogin","getByCode","dataOcorrencia","versao","PhoneModal","makeHomeFactory","Cartao","getCard","saveCard","setOpenEditConfirmation","getCardParams","getByClient","TAB_BOTTOM_CONTAINER_HEIGTH","saveCardParams","makeCardFactory","isLoadingAcceptDigitalState","acceptDigitalState","currentAcceptDigitalState","headerTitle","contentText","contentTextWithChip","contentTitle","docButtonBox","CardAcceptDigital","accept","openUrlDocAccept","openDocumentAccept","currentAcceptDigital","setCurrentAcceptDigital","isAuthorized","handleOpenUrlDocument","viewParams","view","handleCloseMenu","colorType","Orçamento","Contrato","Aditivo","tipoAceite","typeChipContainer","statusChipContainer","emailEnvio","MenuActions","idAceite","onDismiss","anchor","openParams","leadingIcon","dataEnvio","aceiteHashProcesso","Pressable","isOpenAcceptDigitalFiltersState","acceptDigitalFiltersState","dtInicial","dtFinal","Pendentes","Autorizados","Ambos","getAcceptDigital","setAccepts","paramsGetAcceptDigital","SelectStatusAcceptFilter","statusAccept","statusAcceptState","AcceptDigital","getDocAcceptDigital","accepts","makeAcceptDigitalFactory","isLoadingNfState","isLoadingOpenNfState","nfsConfigState","ocultaInfos","ocultaLink","nfsState","nfState","leaseReceiptState","CardNfse","nfse","openNfse","nfsConfigs","currentIndex","setCurrentIndex","isLoadingOpenNfse","setLoadingOpenNfse","handleOpenNfse","nf","openNfseParams","codEmpresa","numeroRPS","notaNumero","serieRps","notaSerie","bold","notaNumeroNFSE","openMenu","linkConsultaNotaPortal","ActivityIndicator","notaValor","notaData","isOpenNfsFiltersState","nfsFiltersState","cardArea","borderBottomWidth","borderBottomColor","emptyNf","LeaseReceipt","openLeaseReceipt","leaseReceipts","_React$useState","React","_React$useState2","setOpenFilters","closeMenu","handleOpenLeaseReceipt","recibo","openLeaseReceiptParams","codigoRecibo","nfNumeroNota","toLocaleDateString","NFProduct","openDanfe","nfs","handleOpenDanfe","openDanfeParams","notaProcNFE","getNFs","setNFsConfigs","setNFs","setNFSs","setLeaseReceipts","initFilters","nfResult","arrRecibos","arrNF","arrNFS","NotaFiscal","getNFsParams","NFService","makeNFFactory","sacState","listaReclamacoes","listaTipoAtendimento","CardSac","_listaTipoAtendimento","_listaTipoAtendimento2","E","R","S","sacType","reclamante","codReclamacao","reclamacao","ModalNewSac","createSac","sacNewState","newSac","setNewSac","setSacs","isLoadingNewSacState","isOpenNewSacState","successNewSac","resetNewSac","tipoDescricao","typeDescription","dateParam","hora","dataAcaoImediata","dataAcaoCorretiva","btnContainer","Sac","_sacs$listaReclamacoe","_sacs$listaReclamacoe2","getSacList","sacs","setOpenNewSac","makeSacFactory","sigmaKeysState","sowillKeysState","sowillIdentifierState","monitoringDateFiltersState","monitoringFilterDate","setMonitoringFilterDate","setRemotyFilter","remotyFilterState","setSigmaFilter","sigmaFilterState","isOpenMonitoringFiltersState","setNoMonitoringError","monitoringListHasError","localFilterDate","setLocalFilterDate","isLoadingMonitoringEventState","handleResetState","remotyIdEquipamento","remotyNmEquip","sigmaTipo","sigmaTituloChip","SIGMA_CLOUD","SelectTypeSigmaEvent","selectInput","modalContainer","modalContent","optionItem","sigmaEventsFilterType","modalVisible","setModalVisible","stylesContainer","View","TouchableWithoutFeedback","AntDesign","animationType","transparent","onRequestClose","option","handleOptionPress","SelectRemotyEventCompany","isMenuOpen","setMenuOpen","currentCompany","setCompany","setEventError","setSectorError","sectorListHasError","setUserError","userListHasError","setContactError","contactListHasError","companies","centraisMonitoramento","handleSelectCompany","company","idEquipment","nmEquipment","onSelectCompany","contentStyle","anchorPosition","selectSigmaCloudKeyData","SelectSigmaCloudKey","currentKey","setCurrentKey","empresaSigma","chave","particao","idMonitoramento","sowillIdentifier","currentSigmaKey","REMOTY","MONI","SIGMA_DESK","SO_WILL","monitoringEventListState","isLoadingSectorEventsState","sectorListState","CardMonitoringEvent","CardSector","isLoadingContactEventState","contactListState","CardContact","isLoadingUserEventsState","userListState","CardUser","fone3","selectSowillKeyState","empresaMonitoramento","SelectSowillKey","setKey","identifier","Events","printEvents","getSigmaEvents","getRemotyEvents","getRemotySectors","getRemotyUsers","getRemotyContacts","getMoniEvents","getMoniSectors","getMoniUsers","getSowillEvents","getSowillSectors","getSowillUsers","getSowillKeys","getSowillIdentifier","getSigmaCloudSectors","getSigmaCloudUsers","getSigmaCloudKeys","getSigmaDeskSectors","getSigmaDeskContacts","sigmaKeys","setSigmaKeys","setSowillKeysList","selectedSowillKey","setSowillIdentifier","getKeys","getIdentifier","monitoringEventList","setMonitoringEventList","hasError","setHasError","sigmaFilterType","getEventsMonitoring","handleGetSigmaEvent","initialDefaultDate","finalDefaultDate","dataIni","filtro","getEvents","defaultDate","empresaMoni","dtInicio","dtFim","mr","innerWidth","ml","listaEventos","printParams","print","printError","MonitoringEventList","sectorList","setSectorList","getEventsSector","getSectors","getSowillSectorParams","getZones","idCentral","getSector","SectorList","userList","setUserList","getEventUser","getUsers","codCentral","UserEventList","contactList","setContactList","getEventContacts","getContacts","ContactEventList","makeEventsFactory","makePrintEvents","makeGetRemotyEventsFactory","makeGetRemotySectorsFactory","makeGetRemotyUsersFactory","makeGetRemotyContactsFactory","makeGetMoniEventsFactory","makeGetMoniUsersFactory","makeGetMoniSectorsFactory","makeGetSowillEventsFactory","makeGetSowillSectorsFactory","makeGetSowillUsersFactory","makeGetSowillKeysFactory","makeGetSowillIdentifierFactory","makeGetSigmaEventsFactory","makeGetSigmaCloudSectorsFactory","makeGetSigmaCloudUsersFactory","makeGetSigmaCloudKeysFactory","makeGetSigmaDeskSectorsFactory","makeGetSigmaDeskContactsFactory","travelAlertState","travelAlertResponsiblesKeysState","travelAlertAuthorizedsState","travelAlertVehiclesState","ModalAddResponsible","addResponsibleState","addVehicleState","setAddVehicle","travelAlertAddResponsibleState","modalState","setModalState","setModalVehicle","isOpenTravelAlertAddVehicle","setTravelAlertResponsibles","setTravelAlertResponsiblesKeys","addNewVehicle","handleAddResponsible","typeCurrent","AUTHORIZED","KEYS","VEHICLE_KEYS","VEHICLE_AUTHORIZED","handleReset","ModalAddVehicle","setOpenAddResponsible","setTravelAlertAddVehicle","ResponsiblesPanel","onAddNew","onRemove","idResp","_ref$disabled","Surface","iconColor","SelectDateTime","travelAlert","setTravelAlert","setModalTimePicker","travelAlertTimePickerState","dateRow","currentTime","VehiclePanel","openAddNew","cardInformation","row","inlineInputs","addTravelAlertOs","modalTimePicker","authorizeds","setAuthorizeds","responsiblesKeys","setResponsiblesKeys","_useRecoilState11","_useRecoilState12","setVehicles","setOpenAddVehicle","resetAuthorizeds","resetResponsibleKeys","resetVehicles","resetAddResponsible","isValidDataTravelAlertOs","handleChangeTime","time","hours","minutes","idVehicle","addTravelOsParams","TimePicker","onConfirm","onDimiss","makeTravelAlertFactory","isLoadingServiceOrderDetailState","serviceOrderDetailState","headerBox","serviceOrderDetail","alt","numOS","tipoOSDescricao","pageInfo","additionalText","additionalTextBox","borderTopWidth","borderTopColor","totalizerTextBox","imageContainer","ClientInfo","CardRow","CardDetails","fantasia","emailCliente","OsInfo","executar","obsFechamento","OsProducts","_serviceOrderDetail$l","_serviceOrderDetail$l2","totalBrutoProdutos","listaProdutos","reduce","acc","produto","unitario","quantidade","codProduto","unidadeMedida","cobraCliente","motivo","entregue","pDesconto","descontoProd","totalProdutos","OsTotalizer","totalServicos","descontoServ","OsTreatments","listaAtendimentos","atendimento","tipoAtendimento","codTecnico","tecnico","hrInicio","hrFim","responsavel","totalHours","totalMinutes","totalSeconds","_handlePastTime$split","initialHour","finalHour","initialTime","durationInMilliseconds","getTime","Math","floor","seconds","handlePastTime","_handlePastTime$split2","handleTotalDuration","OsSignatures","_serviceOrderDetails$","serviceOrderDetails","assinaturasFechamento","sign","data64","nomeArquivo","OsImages","imagensGerais","objectFit","ServiceOrderDetail","getServiceOrderDetail","setIsLoading","setServiceOrderDetail","useRoute","tokenParam","getDetail","makeServiceOrderDetailFactory","isLoadingTrackState","trackState","CardTrack","getTrackDetails","isLoadingTrackDetailsState","setDetails","trackDetailsState","setOpenDetail","isOpenTrackDetailsState","getDetails","currentDetails","handleDetails","TrackDetails","details","handleFuelName","Biocombustivel","Diesel","Eletrico","Etanol","GNV","Gasolina","Hibrido","getTrackList","tracks","setTracks","makeTrackFactory","isOpenContractDetailsState","btnAction","actionsContent","CompanyCard","cpfCnpj","enderecoGeral","ContractCard","numContrato","primeiroFaturamento","diaVencimento","ModalContractDetails","_client$servicosContr","btnLimparStyles","terminoContrato","valorMensal","ph","servicosContratadosPortal","servico","cliSerContDescricao","cliSerContQuantidade","cliSerContValor","dataCadastro","makeContractFactory","isOpenDebtsYearMenuState","debtsYearState","openStatementOfDebts","isOpenDebtsYearMenu","setOpenDebtsYearMenu","debtsYear","setDebtsYear","getSelectedDebtYear","selectedDebtYear","debt","possibleDebtsYears","debtYear","getPossibleDebtsYears","openPaymentReport","updatedDebtsYear","handleSelectDebtYear","makeStatementOfDebtsFactory","createDrawerNavigator","NavigationDrawer","_client$portal$os","_client$portal","_client$portal$boleto","_client$portal2","_client$portal$notaFi","_client$portal3","_client$portal$aceite","_client$portal4","_client$portal$cartao","_client$portal5","_client$portal$sac","_client$portal6","_client$portal$monito","_client$portal7","_client$portal$viagem","_client$portal8","_client$portal$rastre","_client$portal9","_client$portal$contra","_client$portal10","RN_SHOW_MENU_OS","RN_SHOW_MENU_TICKETS","RN_SHOW_MENU_NF","RN_SHOW_MENU_ACEITE","RN_SHOW_MENU_CARTAO","RN_SHOW_MENU_SAC","RN_SHOW_MENU_MONITORING","RN_SHOW_MENU_TRAVEL","RN_SHOW_MENU_RASTREAMENTO","RN_SHOW_MENU_CONTRACTS","linking","prefixes","initialRouteName","screens","NavigationContainer","fallback","drawerActiveTintColor","drawerItemStyle","header","drawerContent","drawerLabel","drawerIcon","headerShown","Logout","portalLogout","isOpenLogoutState","codClient","InstallButton","setOpenModal","isOpenInstallationState","deferredPrompt","addEventListener","hasDeclineInstall","timestamp","isExpiredDecline","diferrenceMilissegundos","abs","handleInstall","_deferredPrompt","prompt","top","Entypo","InstallationSuggestion","setOpenUserMenu","isOpenUserMenuState","contentTitleStyle","Appbar","appBar","Action","toggleDrawer","isLeading","logoArea","themeContainer","titleArea","zIndex","_ref$text","AntDesignIcon","_ref$height","xmlns","viewBox","d","_ref$status","warning","colorContainerStatusStyle","isVisible","onSwipeComplete","onBackdropPress","swipeDirection","animationIn","animationOut","lastAppVersion","setLastAppVersion","lastIntegraVersion","setLastIntegraVersion","_useState5","_useState6","appOutdated","setAppOutdated","_useState7","_useState8","integraOutdated","setIntegraOutdated","getVersion","getAppVersion","currentAppVersionValue","replaceAll","lastAppVersionValue","getIntegraVersion","baseUrl","currentIntegraVersion","currentIntegraVersionValue","lastIntegraVersionValue","Router","updatePassword","setSocialMedia","setPhoneModal","phoneModalNumberState","socialMedias","SnackBarProvider","UpdatePasswordC","setModalOpen","phoneModalState","setModalNumber","callNumber","phoneNumber","Platform","OS","Linking","canOpenURL","supported","openURL","err","animateView","toValue","animatedRef","delay","Animated","timing","useNativeDriver","SnackBar","fadeAnime","Value","initAnimations","sequence","start","Snackbar","action","compact","hidden","closeButton","inputDatePicker","MARGIN_MODALS","contentStyles","titleStyles","buttons","TextInputProps","observer","IntersectionObserver","handleIntersection","root","rootMargin","threshold","observe","unobserve","entries","Input","userTitle","itemMenu","UserMenu","setOpenLogout","setOpenUpdatePassword","isOpenUpdatePasswordState","handleOpenUpdatePassword","handleOnLogout","isOpenMenuUnitsState","setCurrent","loadingIndicatorPosition","nomeUnidade","handleSelectUnit","isLoadingRecoveryPasswordState","isOpenRecoveryPasswordState","recoverySettingsState","setLogin","resetRecoverySettings","idRecuperacao","validate","clientCode","updatePasswordParams","changePassword","isLoadingUpdatePasswordState","updateSettingsState","isSamePassword","c","l","a","r","t","colorsVariant","light","containerColor","containerIconColor","TimePickerModal","use24HourClock","cancelLabel","modalIsOpen","treatedPhoneNumber","q","createElement","async","getElementsByTagName","parentNode","insertBefore","registerTranslation","registerRootComponent","RecoilRoot","PaperProvider"],"mappings":"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","file":"static/js/app.8ecd6840.chunk.js","sourcesContent":["export type HttpRequest = {\n url: string\n method: HttpMethod\n body?: any\n headers?: any\n params?: any\n}\n\nexport interface HttpClient {\n request: (data: HttpRequest) => Promise>\n}\n\nexport type HttpMethod = 'post' | 'get' | 'put' | 'delete'\n\nexport enum HttpStatusCode {\n ok = 200,\n noContent = 204,\n badRequest = 400,\n unauthorized = 401,\n forbidden = 403,\n notFound = 404,\n notAcceptable = 406,\n serverError = 500\n}\n\nexport type HttpResponse = {\n statusCode: HttpStatusCode\n body: T\n}\n","export * from './account-model'\nexport * from './authentication-model'\nexport * from './accept-digital-model'\nexport * from './client-model'\nexport * from './client-configs-model'\nexport * from './card-model'\nexport * from './file-model'\nexport * from './os-attendance-model'\nexport * from './nfs-model'\nexport * from './redes-sociais-model'\nexport * from './sac-model'\nexport * from './service-order-detail-model'\nexport * from './settings-model'\nexport * from './service-order-model'\nexport * from './prospect-configs-model'\nexport * from './ticket-model'\nexport * from './theme-model'\nexport * from './user-model'\nexport * from './events-model'\nexport * from './events-remoty-model'\nexport * from './events-moni-model'\nexport * from './events-sowill-model'\nexport * from './events-sigma-model'\nexport * from './track-models'\n","export * from './login'\nexport * from './financial'\nexport * from './settings'\nexport * from './service-orders'\nexport * from './credit-card'\nexport * from './redes-sociais'\nexport * from './accept-digital'\nexport * from './sac'\nexport * from './nfs'\nexport * from './events'\nexport * from './track'\n","export * from './http'\nexport * from './date'\nexport * from './criptography'\n","export * from './date-adapter'\nexport * from './date-diff-in-days'\nexport * from './date-format'\nexport * from './date-parse'\nexport * from './date-years-ago'\nexport * from './date-current'\nexport * from './date-days-ago'\nexport * from './date-months-ago'\n","export * from './decoder'\n","import { CreditCardModel, MenuAccessPermissionsConfigs } from '@/domain/models'\n\nexport type ClientModel = {\n codCliente: number\n nomeCliente: string\n fantasia: string\n empresa: number\n unidade: number\n numContrato: string\n terminoContrato: string\n valorMensal: number\n telefone1: string\n telefone2: string\n enviaListaChave: boolean\n modalidade: ClientModality\n enderecoGeral: ClientAddress\n enderecoAlternativo: ClientAddress[]\n novaVersao: boolean\n primeiroFaturamento: string\n faturalote: boolean\n email: string\n tipoConexao: ClientMonitoringType\n centraisMonitoramento: CentralMonitoring[]\n portal: MenuAccessPermissionsConfigs\n cpfCnpj: string\n empresaMonitoramento: number\n listaCartoes: CreditCardModel[]\n diaVencimento: string\n servicosContratadosPortal: ContractedServices[]\n visualizaDetalhesContrato: boolean\n}\n\nexport type ContractedServices = {\n cliSerContCodigo: number\n cliSerContDescricao: string\n serCodigo: number\n cliSerContQuantidade: number\n cliSerContValor: number\n cliContNumeroContrato: string\n dataCadastro: string\n}\n\nexport type ClientContractModel = {\n primeiroFaturamento: string\n terminoContrato: string\n faturaLote: boolean\n visualizaDetalhesContrato: boolean\n valorMonitoramento: number\n modalidade: ClientModality\n diaVencimento: number\n numContrato: string\n servicosContratados: ContractedServices[]\n}\n\nexport enum ClientMonitoringType {\n SIGMA_DESK = 0,\n MONI = 1,\n SIGMA_CLOUD = 2,\n REMOTY = 3,\n SO_WILL = 5\n}\n\nexport type ClientAddress = {\n bairro: string\n cep: string\n cidade: string\n codInterno: number\n complemento: string\n endereco: string\n estado: string\n identificacao: 'Principal' | string\n numero: string\n padrao: boolean\n}\n\nexport enum ClientModality {\n Venda = 'V',\n Locacao = 'L',\n Rastreamento = 'R',\n}\n\nexport type CentralMonitoring = {\n idEquipment: number\n nmEquipment: string\n nmAccount: string\n flActive: boolean\n flMonitoring: boolean\n flMaintenance: boolean\n}\n","export type CreditCardModel = {\n ccv: string\n codCliente: number\n email: string\n expiracao: string\n mask: string\n nome: string\n numero: string\n type: CardFlagsTypes\n}\n\nexport type CardFlagsTypes = 'mastercard' | 'visa' | 'amex' | 'diners' | 'discover' | 'unknown'\n\nexport const cardMaskByFlag = {\n mastercard: '9999 9999 9999 9999',\n visa: '9999 9999 9999 9999',\n amex: '9999 999999 99999',\n diners: '9999 9999 9999 99',\n discover: '9999 9999 9999 9999',\n unknown: '9999 9999 9999 9999'\n}\n","export type ServiceOrderDetailModel = {\n planilha: number\n codInterno: number\n unidade: number\n numOS: number\n tipoOSDescricao: string\n status: ServiceOrderDetailStatus\n executar: string\n obsFechamento: string\n\n listaProdutos: ServiceOrderProductModel[]\n listaOsServicos: ServiceOrderServiceModel[]\n listaAtendimentos: ServiceOrderTreatmentModel[]\n\n totalProdutos: number\n descontoProd: number\n pDesconto: number\n totalServicos: number\n descontoServ: number\n pDescontoServico: number\n\n logoEmpresa: string\n assinaturasFechamento: ServiceOrderImageModel[]\n imagensGerais: ServiceOrderImageModel[]\n} & ServiceOrderClientModel\n\nexport type ServiceOrderClientModel = {\n codCliente: number\n cliente: string\n fantasia: string\n cpf: string\n fone1: string\n endereco: string\n bairro: string\n cidade: string\n estado: string\n emailCliente: string\n}\n\nexport type ServiceOrderProductModel = {\n codInterno: number\n codProduto: number\n descricao: string\n quantidade: number\n unitario: number\n total: number\n cobraCliente: boolean\n motivo: string\n entregue: number\n unidadeMedida: string\n}\n\nexport type ServiceOrderServiceModel = {\n codInterno: number\n codServico: number\n descricao: string\n quantidade: number\n total: number\n unitario: number\n cobraCliente: boolean\n}\n\nexport type ServiceOrderTreatmentModel = {\n codTecnico: number\n tecnico: string\n data: string\n hrInicio: string\n hrFim: string\n hrInicioDeslocamento: string\n hrFimDeslocamento: string\n responsavel: string\n observacoes: string\n tipoAtendimento: string\n}\n\nexport enum ServiceOrderDetailStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport type ServiceOrderImageModel = {\n nomeArquivo: string\n dataModificacao: string\n data64: string\n}\n","export type ServiceOrderModel = {\n codInterno: number\n empresa: string\n status: ServiceOrderStatus\n tipo: ServiceOrderModality\n prioridade: ServiceOrderPriority\n ordem: number\n cliente: number\n nomeCliente: string\n dataAbertura: string\n dataFechamento: string\n observacoes: string\n modalidade: string\n solicitante: string\n parecerFinal: string\n codEndereco: number\n}\n\nexport type ServiceOrderResult = {\n listaOS: ServiceOrderModel[]\n bloqueiaAberturaLimite: boolean\n portalExibeMensagem: boolean\n exibirOsFechadas: boolean\n portalMensagem: string\n}\n\nexport enum ServiceOrderStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport enum ServiceOrderPriority {\n Alta = 'A',\n Normal = 'N',\n Baixa = 'B'\n}\n\nexport enum ServiceOrderModality {\n ManutencaoCorretiva = 'M',\n VendasInstalacao = 'V',\n ManutenCaoPreventiva = 'P',\n VendasAmpliacao = 'A',\n RetiradaEquipamento = 'R',\n Interna = 'I'\n}\n","export type TicketModel = {\n codInterno: number\n empresa: string\n cliente: number\n dataEmissao: string\n dataPagamento: string\n formaPagamento: number\n numero: string\n codBanco: BANK\n vencimento: string\n valorDuplicata: number\n valorPago: number\n saldo: number\n nossoNumero: string\n nomeFormaPagto: string\n atraso: number\n linhaDigitavel: string\n habilitaImpressao: boolean\n dupProtestada: boolean\n registrado: boolean\n permiteCartaoCredito: boolean\n linkBoleto: string\n idInBoleto: string\n valorAtualizado: number\n situacao: 'paga' | 'vencida' | 'em Aberto' | 'venceHoje'\n}\n\nexport enum BANK {\n BoletoInside = 900,\n CartaoInside = 901,\n Caixa = 104,\n Sicredi = 748,\n Itau = 341,\n Bradesco = 237,\n Santander = 33,\n Sicoob = 756,\n Banestes = 21\n}\n","export type TrackModel = {\n codInterno: number\n id: string\n placa: string\n}\n\nexport type TrackResult = {\n CodInterno: number\n Id: string\n Placa: string\n}\n\nexport type TrackDetailsModel = {\n id: string\n cor: string\n ano: string\n placa: string\n modelo: string\n combustivel: FuelType\n}\n\nexport enum FuelType {\n Gasolina = 'G',\n Etanol = 'A',\n Biocombustivel = 'B',\n Diesel = 'D',\n GNV = 'N',\n Eletrico = 'E',\n Hibrido = 'H'\n}\n\nexport type TrackDetailsResult = {\n Id: string\n Cor: string\n Ano: string\n Placa: string\n Modelo: string\n Combustivel: string\n}\n","export * from './authentication'\nexport * from './authentication-admin'\nexport * from './get-client-by-code'\nexport * from './get-client-contract'\nexport * from './get-user-by-document'\nexport * from './metrics-login'\nexport * from './metrics-logoff'\nexport * from './portal-logout'\nexport * from './forgot-password'\nexport * from './update-password'\nexport * from './update-default-password'\nexport * from './validate-password-recovery'\n","export * from './generate-bank-slip'\nexport * from './generate-inside-bank-slip'\nexport * from './get-tickets'\nexport * from './get-ticket-pix'\nexport * from './open-bank-slip'\nexport * from './open-statement-of-debts'\n","export type GenerateInsideBankSlipParams = {\n codigoCliente: number\n nossoNumero: string\n registrado: boolean\n linkBoleto: string\n dtVencimento: string\n codBanco: number\n novaVersao: boolean\n original?: boolean\n}\n\nexport interface GenerateInsideBankSlip {\n generate: (params: GenerateInsideBankSlipParams) => Promise\n}\n\nexport namespace GenerateInsideBankSlip {\n export const RN = {\n TOTAL_DAYS_BEFORE_NEW_UPDATE: 21\n }\n}\n","import { TicketModel } from '@/domain/models'\n\nexport type GetTicketSituation = 'Pagas' | 'Em Aberto' | 'Todas'\n\nexport type GetTicketsParams = {\n codigoCliente: number\n situacao?: GetTicketSituation\n dataInicial?: string\n dataFinal?: string\n}\n\nexport interface GetTickets {\n get: (params: GetTicketsParams) => Promise\n}\n\nexport namespace GetTickets {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_YEARS_AGO: 5,\n DEFAULT_STATUS: 'Em Aberto' as GetTicketSituation,\n LIMIT_SHOW_ITEMS: 4,\n SHOW_ONLY_PENDING: 'false'\n }\n}\n","export type OpenStatementOfDebtsParams = {\n codCliente: number\n ano: number\n}\n\nexport interface OpenStatementOfDebts {\n openPaymentReport: (params: OpenStatementOfDebtsParams) => Promise\n}\n\nexport namespace OpenStatementOfDebts {\n export const RN = {\n FOLDER_DEFAULT_PDF: 'TempRelatorios'\n }\n}\n","export * from './get-settings'\nexport * from './get-theme'\nexport * from './get-unit-config'\nexport * from './get-units'\nexport * from './get-prospect-configs'\nexport * from './prospect-registration'\nexport * from './save-theme'\nexport * from './save-unit-config'\nexport * from './test-email'\nexport * from './upload-file'\nexport * from './get-prospect-configs'\nexport * from './save-prospect-configs'\nexport * from './get-events-settings'\nexport * from './show-events'\nexport * from './get-sigma-desk-connections'\n","export * from './get-digital-accepts'\nexport * from './open-url-doc-accept'\nexport * from './open-document-accept'\n","import { AcceptDigitalModel } from '@/domain/models'\n\nexport type GetDigitalAcceptsParams = {\n codCliente: number\n dtInicial: string\n dtFinal: string\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n}\n\nexport interface GetDigitalAccepts {\n get: (params: GetDigitalAcceptsParams) => Promise\n}\n\nexport namespace GetDigitalAccepts {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_STATUS: 'Ambos' as 'Pendentes' | 'Autorizados' | 'Ambos'\n }\n}\n","export * from './get-sac-list'\nexport * from './create-sac'\n","export * from './get-nfs'\nexport * from './open-danfe'\nexport * from './open-nfse'\nexport * from './download-xml'\nexport * from './open-lease-receipt'\n","import { NFResultModel } from '@/domain/models'\n\nexport type GetNFsParams = {\n cliCodigo: number\n dtInicial?: string\n dtFinal?: string\n}\n\nexport interface GetNFs {\n get: (params: GetNFsParams) => Promise\n}\n\nexport namespace GetNFs {\n export const RN = {\n DEFAULT_MONTHS_AGO: 6\n }\n}\n","import { NFModel } from '@/domain/models'\n\nexport type OpenDanfeParams = {\n cliCodigo: number\n notaFiscal: NFModel\n}\n\nexport interface OpenDanfe {\n open: (params: OpenDanfeParams) => Promise\n}\n\nexport namespace OpenDanfe {\n export const RN = {\n FOLDER_DEFAULT_PDF_DANFE: 'TempRelatorios/Danfe'\n }\n}\n","export type OpenNfseParams = {\n codEmpresa: number\n codUnidade: number\n numeroRPS: number\n serieRps: string\n linkAutenticidade: string\n utilizarDevExpress: boolean\n}\n\nexport interface OpenNfse {\n open: (params: OpenNfseParams) => Promise\n}\n\nexport namespace OpenNfse {\n export const RN = {\n FOLDER_DEFAULT_NFSE: 'TempRelatorios/EspelhoNFSe'\n }\n}\n","export type OpenLeaseReceiptParams = {\n codigoRecibo: string\n}\n\nexport interface OpenLeaseReceipt {\n open: (params: OpenLeaseReceiptParams) => Promise\n}\n\nexport namespace OpenLeaseReceipt {\n export const RN = {\n FOLDER_DEFAULT_LEASE_RECEIPT: 'TempRelatorios'\n }\n}\n","module.exports = __webpack_public_path__ + \"static/media/hexagon-bg.05eb5eb2.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-white.eb3742eb.svg\";","import { GenericEventModel } from '@/domain/models'\n\nexport type GetRemotyEventsParams = {\n idEquipamento: number\n empresaMonitoramento: number\n dtInicio?: string\n dtFim?: string\n}\n\nexport interface GetRemotyEvents {\n getEvents: (params: GetRemotyEventsParams) => Promise\n}\n\nexport namespace GetRemotyEvents {\n export const RN = {\n DEFAULT_DAYS: 30\n }\n}\n","import { GenericEventModel } from '@/domain/models'\n\nexport type GetMoniEventsParams = {\n unidade: string\n empresaMoni: string\n codCliente: number\n dataInicial: string\n}\n\nexport interface GetMoniEvents {\n getEvents: (params: GetMoniEventsParams) => Promise\n}\n\nexport namespace GetMoniEvents {\n export const RN = {\n DEFAULT_DAYS_LATER: 15,\n DEFAULT_DAYS_AGO: 15\n }\n}\n","import { GenericEventModel } from '@/domain/models'\n\nexport type SigmaFilterType = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\nexport type SigmaFilterTitle = 'Todos' | 'Alarme' | 'Teste Automático' | 'Armado' | 'Desarmado' | 'Sem Controle' | 'Desarmado ronda'\n\nexport type GetSigmaEventsParams = {\n empresa: number\n cliente: number\n dataIni: string\n dataFinal: string\n filtro: SigmaFilterType\n idSigma: number\n}\n\nexport interface GetSigmaEvents {\n getEvents: (params: GetSigmaEventsParams) => Promise\n}\n\nexport namespace GetSigmaEvents {\n export const RN = {\n DEFAULT_DAYS: 30,\n DEFAULT_FILTER_TYPE: 'rbTodos' as SigmaFilterType,\n DEFAULT_FILTER_TITLE: 'Todos'\n }\n}\n","import { ClientModality } from '@/domain/models'\n\nexport type AddTravelAlertOsParams = {\n cliente: number\n empresa: number\n modalidade: ClientModality\n solicitante: string\n recomendacoes: string\n dataSaida: string\n horaSaida: string\n dataRetorno: string\n horaRetorno: string\n email: string\n telefone1: string\n telefone2: string\n chavesSomenteComCentral: boolean\n possuiAutorizados: boolean\n possuiVeiculosCuidadosCentral: boolean\n responsaveisChave: AddTravelAlertOsResponsible[]\n autorizados: AddTravelAlertOsResponsible[]\n veiculos: AddTravelAlertOsVehicle[]\n}\n\nexport type AddTravelAlertOsResponsible = {\n id: number\n nome: string\n endereco: string\n telefone1: string\n telefone2: string\n observacao: string\n}\n\nexport type AddTravelAlertOsVehicle = {\n id: number\n placa: string\n responsaveis: AddTravelAlertOsResponsible[]\n autorizados: AddTravelAlertOsResponsible[]\n possuiResponsaveis: boolean\n possuiAutorizados: boolean\n}\n\nexport enum AddTravelAlertResponsibleType {\n KEYS = 0,\n AUTHORIZED = 1,\n VEHICLE_KEYS = 2,\n VEHICLE_AUTHORIZED = 3\n}\n\nexport interface AddTravelAlertOs {\n add: (params: AddTravelAlertOsParams) => Promise\n}\n","import { ServiceOrderResult } from '@/domain/models'\n\nexport type GetServiceOrdersParams = {\n codigoCliente: number\n codigoUnidade: number\n situacao: 'Em Aberto' | 'Fechadas' | 'Todas'\n dataInicial?: string\n dataFinal?: string\n}\n\nexport interface GetServiceOrders {\n get: (params: GetServiceOrdersParams) => Promise\n}\n\nexport namespace GetServiceOrders {\n export const RN = {\n OBSERVATION_MAX_LENGTH: 180,\n LIMIT_SHOW_ITEMS: 12,\n DEFAULT_MONTH_AGO: 8,\n DEFAULT_STATUS: 'Em Aberto' as 'Em Aberto' | 'Fechadas' | 'Todas'\n }\n}\n","var map = {\n\t\"./af\": 399,\n\t\"./af.js\": 399,\n\t\"./ar\": 400,\n\t\"./ar-dz\": 401,\n\t\"./ar-dz.js\": 401,\n\t\"./ar-kw\": 402,\n\t\"./ar-kw.js\": 402,\n\t\"./ar-ly\": 403,\n\t\"./ar-ly.js\": 403,\n\t\"./ar-ma\": 404,\n\t\"./ar-ma.js\": 404,\n\t\"./ar-ps\": 405,\n\t\"./ar-ps.js\": 405,\n\t\"./ar-sa\": 406,\n\t\"./ar-sa.js\": 406,\n\t\"./ar-tn\": 407,\n\t\"./ar-tn.js\": 407,\n\t\"./ar.js\": 400,\n\t\"./az\": 408,\n\t\"./az.js\": 408,\n\t\"./be\": 409,\n\t\"./be.js\": 409,\n\t\"./bg\": 410,\n\t\"./bg.js\": 410,\n\t\"./bm\": 411,\n\t\"./bm.js\": 411,\n\t\"./bn\": 412,\n\t\"./bn-bd\": 413,\n\t\"./bn-bd.js\": 413,\n\t\"./bn.js\": 412,\n\t\"./bo\": 414,\n\t\"./bo.js\": 414,\n\t\"./br\": 415,\n\t\"./br.js\": 415,\n\t\"./bs\": 416,\n\t\"./bs.js\": 416,\n\t\"./ca\": 417,\n\t\"./ca.js\": 417,\n\t\"./cs\": 418,\n\t\"./cs.js\": 418,\n\t\"./cv\": 419,\n\t\"./cv.js\": 419,\n\t\"./cy\": 420,\n\t\"./cy.js\": 420,\n\t\"./da\": 421,\n\t\"./da.js\": 421,\n\t\"./de\": 422,\n\t\"./de-at\": 423,\n\t\"./de-at.js\": 423,\n\t\"./de-ch\": 424,\n\t\"./de-ch.js\": 424,\n\t\"./de.js\": 422,\n\t\"./dv\": 425,\n\t\"./dv.js\": 425,\n\t\"./el\": 426,\n\t\"./el.js\": 426,\n\t\"./en-au\": 427,\n\t\"./en-au.js\": 427,\n\t\"./en-ca\": 428,\n\t\"./en-ca.js\": 428,\n\t\"./en-gb\": 429,\n\t\"./en-gb.js\": 429,\n\t\"./en-ie\": 430,\n\t\"./en-ie.js\": 430,\n\t\"./en-il\": 431,\n\t\"./en-il.js\": 431,\n\t\"./en-in\": 432,\n\t\"./en-in.js\": 432,\n\t\"./en-nz\": 433,\n\t\"./en-nz.js\": 433,\n\t\"./en-sg\": 434,\n\t\"./en-sg.js\": 434,\n\t\"./eo\": 435,\n\t\"./eo.js\": 435,\n\t\"./es\": 436,\n\t\"./es-do\": 437,\n\t\"./es-do.js\": 437,\n\t\"./es-mx\": 438,\n\t\"./es-mx.js\": 438,\n\t\"./es-us\": 439,\n\t\"./es-us.js\": 439,\n\t\"./es.js\": 436,\n\t\"./et\": 440,\n\t\"./et.js\": 440,\n\t\"./eu\": 441,\n\t\"./eu.js\": 441,\n\t\"./fa\": 442,\n\t\"./fa.js\": 442,\n\t\"./fi\": 443,\n\t\"./fi.js\": 443,\n\t\"./fil\": 444,\n\t\"./fil.js\": 444,\n\t\"./fo\": 445,\n\t\"./fo.js\": 445,\n\t\"./fr\": 446,\n\t\"./fr-ca\": 447,\n\t\"./fr-ca.js\": 447,\n\t\"./fr-ch\": 448,\n\t\"./fr-ch.js\": 448,\n\t\"./fr.js\": 446,\n\t\"./fy\": 449,\n\t\"./fy.js\": 449,\n\t\"./ga\": 450,\n\t\"./ga.js\": 450,\n\t\"./gd\": 451,\n\t\"./gd.js\": 451,\n\t\"./gl\": 452,\n\t\"./gl.js\": 452,\n\t\"./gom-deva\": 453,\n\t\"./gom-deva.js\": 453,\n\t\"./gom-latn\": 454,\n\t\"./gom-latn.js\": 454,\n\t\"./gu\": 455,\n\t\"./gu.js\": 455,\n\t\"./he\": 456,\n\t\"./he.js\": 456,\n\t\"./hi\": 457,\n\t\"./hi.js\": 457,\n\t\"./hr\": 458,\n\t\"./hr.js\": 458,\n\t\"./hu\": 459,\n\t\"./hu.js\": 459,\n\t\"./hy-am\": 460,\n\t\"./hy-am.js\": 460,\n\t\"./id\": 461,\n\t\"./id.js\": 461,\n\t\"./is\": 462,\n\t\"./is.js\": 462,\n\t\"./it\": 463,\n\t\"./it-ch\": 464,\n\t\"./it-ch.js\": 464,\n\t\"./it.js\": 463,\n\t\"./ja\": 465,\n\t\"./ja.js\": 465,\n\t\"./jv\": 466,\n\t\"./jv.js\": 466,\n\t\"./ka\": 467,\n\t\"./ka.js\": 467,\n\t\"./kk\": 468,\n\t\"./kk.js\": 468,\n\t\"./km\": 469,\n\t\"./km.js\": 469,\n\t\"./kn\": 470,\n\t\"./kn.js\": 470,\n\t\"./ko\": 471,\n\t\"./ko.js\": 471,\n\t\"./ku\": 472,\n\t\"./ku-kmr\": 473,\n\t\"./ku-kmr.js\": 473,\n\t\"./ku.js\": 472,\n\t\"./ky\": 474,\n\t\"./ky.js\": 474,\n\t\"./lb\": 475,\n\t\"./lb.js\": 475,\n\t\"./lo\": 476,\n\t\"./lo.js\": 476,\n\t\"./lt\": 477,\n\t\"./lt.js\": 477,\n\t\"./lv\": 478,\n\t\"./lv.js\": 478,\n\t\"./me\": 479,\n\t\"./me.js\": 479,\n\t\"./mi\": 480,\n\t\"./mi.js\": 480,\n\t\"./mk\": 481,\n\t\"./mk.js\": 481,\n\t\"./ml\": 482,\n\t\"./ml.js\": 482,\n\t\"./mn\": 483,\n\t\"./mn.js\": 483,\n\t\"./mr\": 484,\n\t\"./mr.js\": 484,\n\t\"./ms\": 485,\n\t\"./ms-my\": 486,\n\t\"./ms-my.js\": 486,\n\t\"./ms.js\": 485,\n\t\"./mt\": 487,\n\t\"./mt.js\": 487,\n\t\"./my\": 488,\n\t\"./my.js\": 488,\n\t\"./nb\": 489,\n\t\"./nb.js\": 489,\n\t\"./ne\": 490,\n\t\"./ne.js\": 490,\n\t\"./nl\": 491,\n\t\"./nl-be\": 492,\n\t\"./nl-be.js\": 492,\n\t\"./nl.js\": 491,\n\t\"./nn\": 493,\n\t\"./nn.js\": 493,\n\t\"./oc-lnc\": 494,\n\t\"./oc-lnc.js\": 494,\n\t\"./pa-in\": 495,\n\t\"./pa-in.js\": 495,\n\t\"./pl\": 496,\n\t\"./pl.js\": 496,\n\t\"./pt\": 497,\n\t\"./pt-br\": 498,\n\t\"./pt-br.js\": 498,\n\t\"./pt.js\": 497,\n\t\"./ro\": 499,\n\t\"./ro.js\": 499,\n\t\"./ru\": 500,\n\t\"./ru.js\": 500,\n\t\"./sd\": 501,\n\t\"./sd.js\": 501,\n\t\"./se\": 502,\n\t\"./se.js\": 502,\n\t\"./si\": 503,\n\t\"./si.js\": 503,\n\t\"./sk\": 504,\n\t\"./sk.js\": 504,\n\t\"./sl\": 505,\n\t\"./sl.js\": 505,\n\t\"./sq\": 506,\n\t\"./sq.js\": 506,\n\t\"./sr\": 507,\n\t\"./sr-cyrl\": 508,\n\t\"./sr-cyrl.js\": 508,\n\t\"./sr.js\": 507,\n\t\"./ss\": 509,\n\t\"./ss.js\": 509,\n\t\"./sv\": 510,\n\t\"./sv.js\": 510,\n\t\"./sw\": 511,\n\t\"./sw.js\": 511,\n\t\"./ta\": 512,\n\t\"./ta.js\": 512,\n\t\"./te\": 513,\n\t\"./te.js\": 513,\n\t\"./tet\": 514,\n\t\"./tet.js\": 514,\n\t\"./tg\": 515,\n\t\"./tg.js\": 515,\n\t\"./th\": 516,\n\t\"./th.js\": 516,\n\t\"./tk\": 517,\n\t\"./tk.js\": 517,\n\t\"./tl-ph\": 518,\n\t\"./tl-ph.js\": 518,\n\t\"./tlh\": 519,\n\t\"./tlh.js\": 519,\n\t\"./tr\": 520,\n\t\"./tr.js\": 520,\n\t\"./tzl\": 521,\n\t\"./tzl.js\": 521,\n\t\"./tzm\": 522,\n\t\"./tzm-latn\": 523,\n\t\"./tzm-latn.js\": 523,\n\t\"./tzm.js\": 522,\n\t\"./ug-cn\": 524,\n\t\"./ug-cn.js\": 524,\n\t\"./uk\": 525,\n\t\"./uk.js\": 525,\n\t\"./ur\": 526,\n\t\"./ur.js\": 526,\n\t\"./uz\": 527,\n\t\"./uz-latn\": 528,\n\t\"./uz-latn.js\": 528,\n\t\"./uz.js\": 527,\n\t\"./vi\": 529,\n\t\"./vi.js\": 529,\n\t\"./x-pseudo\": 530,\n\t\"./x-pseudo.js\": 530,\n\t\"./yo\": 531,\n\t\"./yo.js\": 531,\n\t\"./zh-cn\": 532,\n\t\"./zh-cn.js\": 532,\n\t\"./zh-hk\": 533,\n\t\"./zh-hk.js\": 533,\n\t\"./zh-mo\": 534,\n\t\"./zh-mo.js\": 534,\n\t\"./zh-tw\": 535,\n\t\"./zh-tw.js\": 535\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 734;","module.exports = __webpack_public_path__ + \"static/media/card-bg.477d2801.png\";","module.exports = __webpack_public_path__ + \"static/media/inside-logo-white.e3f9d318.svg\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA1MyA0MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeT0iMSIgd2lkdGg9IjUzIiBoZWlnaHQ9IjM5IiByeD0iNCIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzU4Nl8xMTY3KSIvPgo8cGF0aCBkPSJNMCAxMy45OTk2SDE5LjVNMCAyNi45OTk2SDE5LjVDMTkuNSAyOS44MzMgMTkuNSAzNS44IDE5LjUgMzVNMTkuNSAzNUMxOS41IDM0LjIgMTkuNSAxNS40OTk2IDE5LjUgNi40OTk2M0MxOS41IC0wLjUwMDI1MyAzMy41IC03LjYyOTM5ZS0wNSAzMy41IDYuNDk5NjNNMTkuNSAzNUMxOS41IDQxLjUwMDQgMzMuNSA0MS4wMDA0IDMzLjUgMzVWMjYuOTk5Nk01MyAxMy45OTk2SDMzLjVWMjYuOTk5Nk0zMy41IDI2Ljk5OTZINTMiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjMyIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNTg2XzExNjciIHgxPSI1MyIgeTE9IjQwIiB4Mj0iLTcuMzc3NDhlLTA3IiB5Mj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQzRDNEM0Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = __webpack_public_path__ + \"static/media/logo-color.a427ebc6.svg\";","module.exports = __webpack_public_path__ + \"static/media/sugestao-instalacao.382b4a65.png\";","module.exports = __webpack_public_path__ + \"static/media/fundo.4b44ce0e.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNSAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuMzgxODEgMTguNDcxOUMzLjgyNDE2IDE2LjcyMjggMi44NzUgMTQuNDAwNSAyLjg3NSAxMS44NTI0QzIuODc1IDYuNDExMDcgNy4yMDI5MiAyLjAwMDAyIDEyLjU0MTcgMi4wMDAwMkMxNy44ODA1IDIuMDAwMDIgMjIuMjA4MyA2LjQxMTA3IDIyLjIwODMgMTEuODUyNEMyMi4yMDgzIDE0LjYzMTYgMjEuNjI0NiAxNi42MDg4IDE5LjgwODMgMTguNCIgc3Ryb2tlPSIjRjJCNzA1IiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuNjI1IDIwLjg2NjdDMTUuNjI1IDIyLjU5NzIgMTQuMjgxOSAyNCAxMi42MjUgMjRDMTAuOTY4MSAyNCA5LjYyNSAyMi41OTcyIDkuNjI1IDIwLjg2NjdDOS42MjUgMTkuMTM2MSAxMC45NjgxIDE3LjczMzMgMTIuNjI1IDE3LjczMzNDMTQuMjgxOSAxNy43MzMzIDE1LjYyNSAxOS4xMzYxIDE1LjYyNSAyMC44NjY3WiIgZmlsbD0iI0YyQjcwNSIvPgo8L3N2Zz4K\"","const common = {\n white: 'rgba(250, 250, 250, 1)',\n black: 'rgba(0, 0, 0, 0.65)'\n}\n\nconst primary = {\n primaryLighten: 'rgba(185, 176, 191, 1)',\n primaryLight: 'rgba(112, 84, 140, 1)',\n primary: 'rgba(91, 42, 140, 1)',\n primaryDark: 'rgba(80, 45, 115, 1)',\n primaryDarken: 'rgba(43, 29, 64, 1)'\n}\n\nconst secondary = {\n secondaryLight: 'rgba(242, 209, 109, 1)',\n secondary: 'rgba(242, 183, 5, 1)',\n secondaryDark: 'rgba(217, 173, 41, 1)',\n secondaryContainer: 'rgba(242, 183, 5, .2)'\n}\n\nconst info = {\n info: 'rgba(45, 156, 219, 1)',\n infoContainer: 'rgba(45, 156, 219, .2)'\n}\n\nconst error = {\n error: 'rgba(255, 96, 96, 1)'\n}\n\nconst success = {\n success: 'rgba(0, 153, 52, 1)',\n successContainer: 'rgba(0, 153, 52, .2)'\n}\n\nconst divider = {\n divider: 'rgba(214, 214, 214, 1)'\n}\n\nconst background = {\n background: 'rgba(250, 250, 250, 1)',\n backgroundCard: 'rgba(255, 255, 255, 1)',\n backgroundSearch: 'rgba(255, 255, 255, 0.12)',\n backgroundMenu: 'rgb(255, 255, 255)',\n backgroundInput: 'rgba(33, 33, 33, 0.08)',\n backgroundPortal: 'rgba(33, 33, 33, 0.08)'\n}\n\nconst grey = {\n greyLighten: 'rgb(51, 51, 51)',\n greyLight: 'rgba(0, 0, 0, 0.32)',\n grey: 'rgba(0, 0, 0, 0.7)',\n greyDark: 'rgba(0, 0, 0, 0.8)',\n greyDarken: 'rgba(0, 0, 0, 0.12)',\n greyDarken2: 'rgba(0, 0, 0, 0.04)'\n}\n\nconst texts = {\n textsLighten: 'rgba(0, 0, 0, 0.32)',\n textsLight: 'rgba(0, 0, 0, 0.62)',\n texts: 'rgba(0, 0, 0, 0.77)',\n textsDark: 'rgba(0, 0, 0, 0.8)'\n}\n\nconst other = {\n pink: '#FF508F'\n}\n\nexport const palette = {\n common,\n primary,\n secondary,\n error,\n success,\n divider,\n background,\n grey,\n texts,\n info,\n other\n}\n","\nimport { palette } from './palette'\nimport { MD3LightTheme as DefaultTheme } from 'react-native-paper'\n\nexport const theme = {\n name: 'default',\n colors: {\n ...DefaultTheme.colors,\n ...palette.common,\n ...palette.primary,\n ...palette.secondary,\n ...palette.info,\n ...palette.error,\n ...palette.success,\n ...palette.divider,\n ...palette.background,\n ...palette.grey,\n ...palette.texts,\n ...palette.other\n }\n}\n","import { GetCookie, SetCookie } from '@/data/protocols/cache'\nimport Cookies from 'universal-cookie'\n\nconst universalCookies = new Cookies()\n\nexport class UniversalCookieAdapter implements SetCookie, GetCookie {\n set (key: string, value: any): void {\n if (value) {\n universalCookies.set(key, value, { path: '/' })\n } else {\n universalCookies.remove(key, { path: '/' })\n }\n }\n\n get (key: string): any {\n return universalCookies.get(key)\n }\n}\n","import { GetStorage, SetStorage } from '@/data/protocols/cache'\n\nexport class LocalStorageAdapter implements SetStorage, GetStorage {\n set (key: string, value: any): void {\n if (value) {\n localStorage.setItem(key, JSON.stringify(value))\n } else {\n localStorage.removeItem(key)\n }\n }\n\n get (key: string): any {\n const value = localStorage.getItem(key)\n return !!value && JSON.parse(value)\n }\n}\n","import { LocalStorageAdapter } from '@/infra/cache'\n\nexport const makeLocalStorageAdapter = (): LocalStorageAdapter => new LocalStorageAdapter()\n","export class InvalidCredentialsError extends Error {\n constructor (message?: string) {\n super(message ?? 'Credenciais inválidas')\n this.name = 'InvalidCredentialsError'\n }\n}\n","export class InvalidRelationCompany extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'InvalidRelationCompany'\n }\n}\n","export class UnexpectedError extends Error {\n constructor () {\n super('Algo de errado aconteceu.Tente novamente mais tarde.')\n this.name = 'UnexpectedError'\n }\n}\n","export class UnexpectedResultFormatError extends Error {\n constructor () {\n super('Algo de errado aconteceu. Resultado com formato inválido')\n this.name = 'UnexpectedResultFormatError'\n }\n}\n","export class AccessDeniedError extends Error {\n constructor () {\n super('Sessão Expirada, faça o login novamente')\n this.name = 'AccessDeniedError'\n }\n}\n","export class ForbiddenError extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'ForbiddenError'\n }\n}\n","export class ResultWithoutRecordsError extends Error {\n constructor () {\n super('Sem Registro, não há dados para exibir!')\n this.name = 'ResultWithoutRecordsError'\n }\n}\n","export class SamePasswordError extends Error {\n constructor () {\n super('Senha e nova senha são iguais, por favor informe uma nova senha diferente da atual!')\n this.name = 'SamePasswordError'\n }\n}\n","export class NotFoundError extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'NotFoundError'\n }\n}\n","import { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { AuthenticationModel } from '@/domain/models'\nimport { AuthenticationParams, Authentication } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteAuthentication implements Authentication {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async auth (params: AuthenticationParams): Promise {\n const dataParams = {\n ...params,\n grant_type: 'password',\n portal: true\n }\n\n const authParams: HttpRequest = {\n url: `${this.url}/api/token`,\n method: 'post',\n body: dataParams,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.badRequest: throw new ForbiddenError(body?.error_description)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.error_description)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AuthenticationAdminParams, AuthenticationAdminResult, AuthenticationAdmin } from '@/domain/usecases'\nimport { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\nimport { AuthenticationModel } from '@/domain/models'\n\nexport class RemoteAuthenticationAdmin implements AuthenticationAdmin {\n constructor (\n private readonly url: string,\n private readonly identificadorAplicacao: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async auth (params: AuthenticationAdminParams): Promise {\n const dataParams = {\n ...params,\n IdentificadorAplicacao: this.identificadorAplicacao\n }\n\n const authParams: HttpRequest = {\n url: `${this.url}/api/v1/autenticacao/autenticar`,\n method: 'post',\n body: dataParams,\n headers: {\n 'content-type': 'multipart/form-data'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToModel(body)\n case HttpStatusCode.forbidden: throw new ForbiddenError(body?.message)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.message)\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (authenticationAdmin: AuthenticationAdminResult): AuthenticationModel {\n return {\n ...authenticationAdmin.data,\n access_token: authenticationAdmin.data.token\n }\n }\n}\n","import { GetUserByDocument, GetUserByDocumentParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, InvalidCredentialsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { UserModel } from '@/domain/models'\n\nexport class RemoteGetUser implements GetUserByDocument {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getUsersByDocument (params: GetUserByDocumentParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/acessofacilitado`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n if (!body.length) {\n throw new InvalidCredentialsError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ForgotPassword, ForgotPasswordParams } from '@/domain/usecases'\n\nexport class RemoteForgotPassword implements ForgotPassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async requestAccess (params: ForgotPasswordParams): Promise {\n const { body, statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/recuperar-senha`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { PortalLogout, PortalLogoutParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemotePortalLogout implements PortalLogout {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async logout (params: PortalLogoutParams): Promise {\n const { statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/RealizaLogoutPortal`,\n params\n })\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { MetricsLogin, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogin implements MetricsLogin {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGIN',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { MetricsLogoff, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogoff implements MetricsLogoff {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGOFF',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { GetClientByCode, GetClientByCodeParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { ClientModel } from '@/domain/models'\n\nexport class RemoteGetClientByCode implements GetClientByCode {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getByCode (params: GetClientByCodeParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/clientes`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetClientContract, GetClientContractParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { ClientContractModel } from '@/domain/models'\n\nexport class RemoteGetClientContract implements GetClientContract {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getContract (params: GetClientContractParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/portal/dados-contrato`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, InvalidCredentialsError, SamePasswordError, UnexpectedError } from '@/domain/errors'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\n\nexport class RemoteUpdatePassword implements UpdatePassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async update (params: UpdatePasswordParams): Promise {\n const { confirmacaoSenha, ...dataParams } = params\n\n if (dataParams.senhaAtual === dataParams.novaSenha) {\n throw new SamePasswordError()\n }\n\n const { statusCode, body } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/Clientes`,\n params: dataParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { UpdateDefaultPassword, UpdateDefaultPasswordParams } from '@/domain/usecases'\n\nexport class RemoteUpdateDefaultPassword implements UpdateDefaultPassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async changePassword (params: UpdateDefaultPasswordParams): Promise {\n const { statusCode, body } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/alterar-senha-padrao`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ValidatePasswordRecoveryResult, ValidatePasswordRecovery, ValidatePasswordRecoveryParams } from '@/domain/usecases'\n\nexport class RemoteValidatePasswordRecovery implements ValidatePasswordRecovery {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async validate (params: ValidatePasswordRecoveryParams): Promise {\n const { body, statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/LoginPortalService`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body.codigoCliente\n case HttpStatusCode.forbidden: throw new ForbiddenError(body.error)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetCreditCard, GetCreditCardParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreditCardModel } from '@/domain/models'\n\nexport class RemoteGetCreditCard implements GetCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getByClient (params: GetCreditCardParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/portal/buscar-cartao-credito`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n body.expiracao = `${body.expiracao.split('/')[0]}/${body.expiracao.split('/')[1].substring(2)}`\n return body\n case HttpStatusCode.noContent: return null as unknown as CreditCardModel\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreditCardModel } from '@/domain/models'\nimport { SaveCreditCard } from '@/domain/usecases'\n\nexport class RemoteSaveCreditCard implements SaveCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async save (params: CreditCardModel): Promise {\n const { expiracao, ...dataParams } = params\n\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/gravar-cartao-credito`,\n body: {\n ...dataParams,\n expiracao: this.formatExpiration(expiracao)\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n formatExpiration (expiration: string): string {\n const currentYear = new Date()\n .getFullYear()\n .toString()\n .substring(0, 2)\n\n return `${expiration.split('/')[0]}/${currentYear}${expiration.split('/')[1]}`\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { PayWithCreditCard, PayWithCreditCardParams } from '@/domain/usecases'\n\nexport class RemotePayWithCreditCard implements PayWithCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async pay (params: PayWithCreditCardParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/pagamentocartao`,\n body: {\n duplicata: params.duplicata,\n cartao: {\n ...params.cartao,\n expiracao: this.formatExpiration(params.cartao.expiracao)\n }\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.notAcceptable: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n formatExpiration (expiration: string): string {\n const currentYear = new Date()\n .getFullYear()\n .toString()\n .substring(0, 2)\n\n return `${expiration.split('/')[0]}/${currentYear}${expiration.split('/')[1]}`\n }\n}\n","import { TicketModel } from '@/domain/models'\nimport { GetTickets, GetTicketsParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTickets implements GetTickets {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetTicketsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/lista-boletos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as TicketModel[]\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetTicketPix, GetTicketPixParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTicketPix implements GetTicketPix {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getPix (params: GetTicketPixParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/boleto/pix`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenerateBankSlip, GenerateBankSlipParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { BANK } from '@/domain/models'\n\nexport const TEMP_FOLDER_REPORTS_INTEGRA = 'TempRelatorios'\n\nexport class RemoteGenerateBankSlip implements GenerateBankSlip {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async generate (params: GenerateBankSlipParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/boletos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body || typeof body !== 'string') {\n throw new UnexpectedResultFormatError()\n }\n\n if ([BANK.BoletoInside, BANK.CartaoInside].includes(params.codBanco)) {\n return body\n }\n return `/${TEMP_FOLDER_REPORTS_INTEGRA}/${body}`\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenerateBankSlip, GenerateBankSlipParams, GenerateInsideBankSlip, GenerateInsideBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\nexport class RemoteGenerateInsideBankSlip implements GenerateInsideBankSlip {\n constructor (\n private readonly dateAdapter: DateAdapter,\n private readonly generateBankSlip: GenerateBankSlip\n ) {}\n\n async generate (params: GenerateInsideBankSlipParams): Promise {\n const { registrado, linkBoleto, dtVencimento, ...originalGenerateParams } = params\n const generateParams: GenerateBankSlipParams = originalGenerateParams\n\n if (registrado) {\n const dates = {\n startDate: this.dateAdapter.today(),\n endDate: this.dateAdapter.parse(dtVencimento)\n }\n\n if (this.dateAdapter.diffInDays(dates) <= GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE) {\n generateParams.original = true\n }\n } else if (linkBoleto) {\n generateParams.original = true\n }\n\n return await this.generateBankSlip.generate(generateParams)\n }\n}\n","import { GenerateBankSlip, OpenBankSlip, OpenBankSlipParams, GenerateInsideBankSlip } from '@/domain/usecases'\nimport { BANK } from '@/domain/models'\n\nexport class RemoteOpenBankSlip implements OpenBankSlip {\n constructor (\n private readonly generateBankSlip: GenerateBankSlip,\n private readonly generateInsideBankSlip: GenerateInsideBankSlip\n ) {}\n\n async openPDF (params: OpenBankSlipParams): Promise {\n let bankSlipUrl: string = ''\n\n if ([BANK.BoletoInside, BANK.CartaoInside].includes(params.codBanco)) {\n bankSlipUrl = await this.generateInsideBankSlip.generate(params)\n } else {\n if (params.registrado) {\n bankSlipUrl = {\n [BANK.Caixa]: 'https://bloquetoexpresso.caixa.gov.br/bloquetoexpresso/index.jsp',\n [BANK.Sicredi]: 'https://www.sicredi.com.br/segundaviaboleto/',\n [BANK.Itau]: 'https://www.itau.com.br/servicos/boletos/atualizar/',\n [BANK.Bradesco]: 'https://www.ib12.bradesco.com.br/ibpfsegundaviaboleto/segundaViaBoletoPesquisarLinhaDigitavel.do',\n [BANK.Santander]: 'https://www.santander.com.br/2-via-boleto',\n [BANK.Sicoob]: 'http://www.sicoob.com.br/segunda-via-de-boleto',\n [BANK.Banestes]: 'https://wwws.banestes.com.br/formularios_consultas/servicos/serv_boletos.htm',\n [BANK.BoletoInside]: '',\n [BANK.CartaoInside]: ''\n }[params.codBanco]\n } else {\n bankSlipUrl = await this.generateBankSlip.generate(params)\n }\n }\n\n window.open(bankSlipUrl, '_blank')\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\n\nexport class RemoteOpenStatementOfDebts implements OpenStatementOfDebts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async openPaymentReport (params: OpenStatementOfDebtsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/imprimir-quitacao`,\n method: 'post',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open?.(`/${OpenStatementOfDebts.RN.FOLDER_DEFAULT_PDF}/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ThemeModel } from '@/domain/models'\nimport { GetTheme, GetThemeParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTheme implements GetTheme {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async get (params: GetThemeParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ConfigModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { GetUnitConfig, GetUnitConfigParams } from '@/domain/usecases'\n\nexport class RemoteGetUnitConfig implements GetUnitConfig {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (params: GetUnitConfigParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/configs`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { Unidade } from '@/domain/models'\nimport { GetUnits } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetUnits implements GetUnits {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/unidades`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (typeof body !== typeof []) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetProspectConfigs } from '@/domain/usecases'\nimport { UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { ProspectConfigsModel } from '@/domain/models'\n\nexport class RemoteGetProspectConfigs implements GetProspectConfigs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/configuracoes-prospect`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveTheme, SaveThemeParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteSaveTheme implements SaveTheme {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (theme: SaveThemeParams, unitCode: number): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\n method: 'post',\n body: {\n ...theme,\n codigoUnidade: unitCode\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveUnitConfig, SaveUnitConfigParams } from '@/domain/usecases/'\nimport { AccessDeniedError, InvalidRelationCompany, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteSaveUnitConfig implements SaveUnitConfig {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (config: SaveUnitConfigParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'put',\n url: `${this.url}/api/portal/config`,\n body: config\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as boolean\n case HttpStatusCode.forbidden: throw new InvalidRelationCompany(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ProspectRegistration, ProspectRegistrationParams, ProspectRegistrationResult } from '@/domain/usecases'\nimport { ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteProspectRegistration implements ProspectRegistration {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async register (params: ProspectRegistrationParams): Promise {\n const { email, ...bodyParams } = params\n\n const request: HttpRequest = {\n url: `${this.url}/api/portal/gravar-prospect`,\n method: 'post',\n params: {\n email,\n origemSistema: 'P'\n },\n body: {\n ...bodyParams,\n fichaCadastral: 'Prospect cadastrado através do Portal do Cliente.',\n status: 'A',\n usuario: 'PortalService'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return (body as ProspectRegistrationResult).codProspect\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { TestEmail, TestEmailParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteTestEmail implements TestEmail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async test (params: TestEmailParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/testaemail`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { FileModel } from '@/domain/models'\nimport { UploadFile, UploadFileParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteUploadFile implements UploadFile {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async upload (params: UploadFileParams): Promise {\n const formData = new FormData()\n formData.append('file', params.file)\n formData.append('name', params.scope)\n\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/image`,\n body: formData,\n headers: {\n ContentType: 'multipart/form-data'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases/'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteSaveProspectConfig implements SaveProspectConfigs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (config: SaveProspectConfigsParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/configuracoes-prospect`,\n body: config\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as unknown as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetEventsSettings, GetEventsSettingsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { EventsSettingsModel } from '@/domain/models'\n\nexport class RemoteGetEventsSettings implements GetEventsSettings {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (params: GetEventsSettingsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/listar-eventos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ShowEvents, ShowEventsParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteShowEvents implements ShowEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async show (params: ShowEventsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/gravar-eventos-exibidos`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetSigmaDeskConnections } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { GenericSigmaDeskConnectionModel, SigmaDeskConnectionModel } from '@/domain/models'\n\nexport class RemoteGetSigmaDeskConnections implements GetSigmaDeskConnections {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/listar-conexoes`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (connections: SigmaDeskConnectionModel[]): GenericSigmaDeskConnectionModel[] {\n return connections.map((connection: SigmaDeskConnectionModel) => {\n return {\n id: connection.codigo,\n descricao: `${connection.banco} - ${connection.idSigma}`,\n isSelected: false\n }\n })\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { NFResultModel } from '@/domain/models'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\n\nexport class RemoteGetNFs implements GetNFs {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetNFsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/NotasFiscais`,\n method: 'get',\n params,\n headers:\n {\n 'content-type': 'application/json',\n 'cache-control': 'no-cache'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\n\nexport class RemoteOpenDanfe implements OpenDanfe {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenDanfeParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-danfe`,\n method: 'post',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n window.open(`/${OpenDanfe.RN.FOLDER_DEFAULT_PDF_DANFE}/${params.cliCodigo}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenNfse implements OpenNfse {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenNfseParams): Promise {\n const { linkAutenticidade, ...dataParams } = params\n\n if (dataParams.utilizarDevExpress) {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/EspelhoNotaFiscal`,\n method: 'get',\n params: {\n ...dataParams,\n producao: true\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenNfse.RN.FOLDER_DEFAULT_NFSE}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n } else if (linkAutenticidade) {\n window.open(linkAutenticidade, '_blank')\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\n\nexport class RemoteOpenLeaseReceipt implements OpenLeaseReceipt {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenLeaseReceiptParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-recibo-locacao`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenLeaseReceipt.RN.FOLDER_DEFAULT_LEASE_RECEIPT}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteAddNewOs implements AddNewOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async add (params: AddNewOsParams): Promise {\n const bodyParams = {\n ...params,\n avisoViagem: false,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddTravelAlertOs, AddTravelAlertOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { TravelAlertBuilder } from '@/data/builders'\n\nexport class RemoteAddTravelAlertOs implements AddTravelAlertOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly travelAlertBuilder: TravelAlertBuilder\n ) {}\n\n async add (params: AddTravelAlertOsParams): Promise {\n const observacoes = this.travelAlertBuilder\n .setDates(params.dataSaida, params.horaSaida, params.dataRetorno, params.horaRetorno)\n .requester(params.solicitante)\n .emailRequester(params.email)\n .phone1Requester(params.telefone1)\n .phone2Requester(params.telefone2)\n .addResponsibles(params.chavesSomenteComCentral, params.responsaveisChave)\n .addAuthorized(params.possuiAutorizados, params.autorizados)\n .addVehicles(params.possuiVeiculosCuidadosCentral, params.veiculos)\n .addRecommendations(params.recomendacoes)\n .build()\n\n const bodyParams = {\n cliente: params.cliente,\n empresa: params.empresa,\n modalidade: params.modalidade,\n solicitante: params.solicitante,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal,\n avisoViagem: true,\n observacoes\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders, GetServiceOrdersParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetServiceOrders implements GetServiceOrders {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetServiceOrdersParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/lista-oss`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body as ServiceOrderResult\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance, GetOsAttendanceParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetOsAttendance implements GetOsAttendance {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getAttendences (params: GetOsAttendanceParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/osatendimentos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetailParams, GetServiceOrderDetail } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetServiceOrderDetail implements GetServiceOrderDetail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getDetail (params: GetServiceOrderDetailParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/dados-os`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais } from '@/domain/usecases/redes-sociais/get-redes-sociais'\n\nexport class RemoteGetRedesSociais implements GetRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getRedesSociais (): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'get',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { RedesSociaisModel } from '@/domain/models'\nimport { SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases/'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteSaveRedesSociais implements SaveRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async save (params: SaveRedesSociaisParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { GetDigitalAccepts, GetDigitalAcceptsParams } from '@/domain/usecases'\n\nexport class RemoteGetAcceptDigital implements GetDigitalAccepts {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetDigitalAcceptsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-aceite-eletronico`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as AcceptDigitalModel[]\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenUrlDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenUrlDocAccept implements OpenUrlDocumentAccept {\n constructor (\n private readonly httpGetClient: HttpClient\n ) { }\n\n async view (params: OpenUrlDocumentAcceptParams): Promise {\n const { statusAceite, urlAceite } = params\n\n if (statusAceite === 'Pendente') {\n window.open(urlAceite, '_blank')\n } else {\n const hash = urlAceite.substring(urlAceite.indexOf('#/aceite/') + 9)\n const urlBaseAceite = urlAceite.substring(0, urlAceite.indexOf('AceiteDigital/#'))\n\n const request: HttpRequest = {\n url: `${urlBaseAceite}api/AceiteEletronico?link=${hash}`,\n method: 'post',\n params: {\n enviarEmail: false\n }\n }\n\n const { statusCode, body } = await this.httpGetClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n const certificadoHtml = new Blob([body], { type: 'text/html;charset=utf-8' })\n const html = URL.createObjectURL(certificadoHtml)\n window.open(html, '_blank')\n\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenDocumentAccept implements OpenDocumentAccept {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async open (params: OpenDocumentAcceptParams): Promise {\n const { codigoAceite, statusAceite } = params\n\n if (statusAceite === 'Autorizado') {\n const { statusCode, body } = await this.httpClient.request({\n url: `${this.url}/api/AceiteEletronico/ObterDocumentoAceite`,\n method: 'get',\n params: { codigoAceite }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n window.open(`${this.url}/${body}`, '_blank')\n break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { PrintEvents, PrintEventsParams } from '@/domain/usecases'\n\nexport class RemotePrintEvents implements PrintEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async print (params: PrintEventsParams): Promise {\n const { tipoConexao, data } = params\n const request: HttpRequest = {\n url: `${this.url}/api/eventosmonitoramento`,\n method: 'post',\n params: { tipoConexao },\n body: data\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n const oldUrlIndex = this.url.toLowerCase().indexOf('/portalservice')\n const newUrl = oldUrlIndex === -1 ? this.url : this.url.substring(oldUrlIndex)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open(`${newUrl}/TempRelatorios/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, RemotyEventModel } from '@/domain/models'\nimport { GetRemotyEvents, GetRemotyEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetRemotyEvents implements GetRemotyEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetRemotyEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/eventos`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (eventsRaw: string): GenericEventModel[] {\n const events = eventsRaw\n ? JSON.parse(eventsRaw) as RemotyEventModel[]\n : []\n\n return events?.map(remotyEvent => ({\n evento: remotyEvent?.event?.codEvent,\n descricao: remotyEvent?.event?.nmEvent,\n dataEvento: remotyEvent?.dtEventFormatted,\n aux: remotyEvent?.event?.idEvent.toString(),\n usuario: remotyEvent?.nmPanelUser\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, RemotySectorResult } from '@/domain/models'\nimport { GetRemotySectors, GetRemotySectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotySectors implements GetRemotySectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetRemotySectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as RemotySectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: RemotySectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.nmZone,\n idEquipamento: sector.idEquipmentZone.toString(),\n codigoCliente: sector.codZone.toString(),\n ativo: sector.flActive\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers, GetRemotyUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyUserEvents implements GetRemotyUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetRemotyUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body as RemotyUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (users: RemotyUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.nmUserPassword\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericContactModel, RemotyContactModel } from '@/domain/models'\nimport { GetRemotyContacts, GetRemotyContactsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyContacts implements GetRemotyContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetRemotyContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaContato`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as RemotyContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: RemotyContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.idDevice.toString(),\n nomeUsuario: contact.nmDeviceUser,\n fone1: contact.nmDevicePhone,\n fone2: contact.nmDevicePhone2,\n idDispositivo: contact.deviceGroup.idDeviceGroup.toString(),\n nomeDispositivo: contact.deviceGroup.nmDeviceGroup\n }))\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, MoniEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetMoniEvents implements GetMoniEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly dateAdapter: DateAdapter\n\n ) {}\n\n async getEvents (params: GetMoniEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-eventos-central`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as MoniEventModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: MoniEventModel[]): GenericEventModel[] {\n return events?.map(event => ({\n evento: event?.codigoOcorrencia,\n descricao: event?.ocorrencia,\n dataEvento: this.dateAdapter.format(event?.dataHora)\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, MoniSectorResult } from '@/domain/models'\nimport { GetMoniSectorsParams, GetMoniSectors } from '@/domain/usecases/events/get-moni-sectors'\n\nexport class RemoteGetMoniSectors implements GetMoniSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetMoniSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectorsRaw: string): GenericSectorModel[] {\n const sectors = sectorsRaw\n ? JSON.parse(sectorsRaw) as MoniSectorResult\n : []\n\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.equipamento,\n codigoCliente: sector.cliente.toString(),\n codigoZona: sector.equipamento\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, MoniUserResult } from '@/domain/models'\nimport { GetMoniUsers, GetMoniUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGeMoniUsersEvents implements GetMoniUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetMoniUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-usuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (usersRaw: string): GenericUserModel[] {\n const users = usersRaw\n ? JSON.parse(usersRaw) as MoniUserResult\n : []\n\n return users?.map(user => ({\n nome: user.nome,\n codCliente: user.codCliente.toString(),\n dddFone: user.dddCelular,\n fone1: user.celular\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SoWillEventModel } from '@/domain/models'\nimport { GetSowillEvents, GetSowillEventsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillEvents implements GetSowillEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getEvents (params: GetSowillEventsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n codInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaeventos`,\n method: 'post',\n params: { dateTimeInicioManutencao: params.dateTimeInicioManutencao },\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SoWillEventModel[]): GenericEventModel[] {\n return events?.map(sowillEvent => ({\n evento: sowillEvent?.code,\n descricao: sowillEvent?.description,\n dataEvento: sowillEvent?.startDate,\n aux: sowillEvent?.id,\n usuario: sowillEvent.account\n }))\n }\n}\n","import { GenericSectorModel, SowillSectorResult } from '@/domain/models'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillSectors, GetSowillSectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillSectors implements GetSowillSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSowillSectorsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listazonas`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as SowillSectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SowillSectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.numeroSerie,\n codigoCliente: sector.id,\n observacao: sector.auxiliar\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SowillUserResult } from '@/domain/models'\nimport { GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillUsers implements GetSowillUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSowillUsersParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaUsuarios`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SowillUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SowillUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.usuarioAlarme,\n codCliente: user.nroUserSistema?.toString(),\n fone1: user.telefone1,\n fone2: user.telefone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillKeys, GetSowillKeysParams } from '@/domain/usecases'\nimport { SowillKeyResult } from '@/domain/models'\n\nexport class RemoteGetSowillKeys implements GetSowillKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSowillKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/soWill/listaChavesCliente`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillIdentifier, GetSowillIdentifierParams } from '@/domain/usecases'\nimport { SowillIdentifier, SowillIdentifierResult } from '@/domain/models'\n\nexport class RemoteGetSowillIdentifier implements GetSowillIdentifier {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getIdentifier (params: GetSowillIdentifierParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/dados`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return {\n codInternoChave: body.CodInternoChave,\n idCliente: body.IdCliente\n }\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents, GetSigmaEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaEvents implements GetSigmaEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetSigmaEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/EventosSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SigmaEventModel[]): GenericEventModel[] {\n return events?.map(sigmaEvent => ({\n evento: sigmaEvent?.evento,\n descricao: sigmaEvent?.descricao,\n dataEvento: sigmaEvent?.dataEvento,\n aux: sigmaEvent?.aux\n }))\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaCloudSectors, GetSigmaCloudSectorsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudSectors implements GetSigmaCloudSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSigmaCloudSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloudZona`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SigmaCloudUserResult } from '@/domain/models'\nimport { GetSigmaCloudUsers, GetSigmaCloudUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudUsers implements GetSigmaCloudUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSigmaCloudUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloud/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SigmaCloudUserResult): GenericUserModel[] {\n return users?.usuarios.map(user => ({\n nome: user.nome,\n codCliente: user.id.toString(),\n fone1: user.fone1,\n fone2: user.fone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { SigmaCloudKeyResponseModel, SigmaCloudKeyResult } from '@/domain/models'\nimport { GetSigmaCloudKeys, GetSigmaCloudKeysParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaCloudKeys implements GetSigmaCloudKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSigmaCloudKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmacloud/lista-chaves`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { GetSigmaDeskSectors, GetSigmaDeskSectorParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaDeskSectors implements GetSigmaDeskSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSector (params: GetSigmaDeskSectorParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/SetorSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSigmaDeskContacts, GetSigmaDeskContactsParams } from '@/domain/usecases'\nimport { GenericContactModel, SigmaDeskContactModel } from '@/domain/models'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaDeskContacts implements GetSigmaDeskContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetSigmaDeskContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/contatoSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SigmaDeskContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: SigmaDeskContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.cdCliente.toString(),\n nomeUsuario: contact.nome,\n fone1: contact.fone1,\n fone2: contact.fone2,\n idDispositivo: contact.idFuncao.toString(),\n nomeDispositivo: contact.descFuncao\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { ClaimsResult } from '@/domain/models'\nimport { GetSacList, GetSacListParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSacList implements GetSacList {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) { }\n\n async get (params: GetSacListParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-sacs`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\n\nexport class RemoteCreateSac implements CreateSac {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async create (sacParams: CreateSacParams): Promise {\n const params = {\n isPortal: true\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/portal/gravar-sac`,\n method: 'post',\n params,\n body: sacParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { LocalStorageAdapter } from '@/infra/cache'\nimport { HttpRequest, HttpResponse, HttpClient } from '@/data/protocols'\nimport axios, { AxiosResponse } from 'axios'\n\nexport class AxiosHttpClient implements HttpClient {\n constructor (private readonly localStorageAdapter: LocalStorageAdapter) {}\n\n async request (data: HttpRequest): Promise {\n let axiosResponse: AxiosResponse\n const token = (this.localStorageAdapter.get('access_token'))?.access_token as string\n\n try {\n axiosResponse = await axios.request({\n url: data.url,\n method: data.method,\n data: data.body,\n headers: {\n ...data.headers,\n ...(token && { Authorization: `bearer ${token}` })\n },\n params: data.params\n })\n return {\n statusCode: axiosResponse.status,\n body: axiosResponse.data\n }\n } catch (error: any) {\n return {\n statusCode: error.response?.status || 400,\n body: error.response?.data\n }\n }\n }\n}\n","import { HttpClient } from '@/data/protocols'\nimport { AxiosHttpClient } from '@/infra/http'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\n\nexport const makeAxiosHttpClient = (): HttpClient => {\n return new AxiosHttpClient(makeLocalStorageAdapter())\n}\n","export const environment: 'production' | 'development' = 'production'\n\nexport default {\n /*\n Em **desenvolvimento** preencher API_URL com endereço do integra exemplo http://localhost:5002.\n Antes de gerar o build o valor da API_URL deve ser removido e mantido em branco para que o build\n ocorra de forma correta.\n */\n API_URL: environment === 'development' ? 'http://localhost:5002' : '',\n API_PROJETOS: 'https://f002.backblazeb2.com/file/ftp-projetos-insidesistemas/',\n API_LOGIN_URL: 'https://login.insidesistemas.com.br',\n API_LOGIN_IDENTIFICADOR_APP: '226f8ce0-d48e-4af7-8f54-2d02cfdbe587',\n CLARITY_KEY: 'hr379143ky',\n METRICS_LOG_IN_OUT: 'https://servicewebmetrics.azurewebsites.net',\n FIREBASE_PUBLIC_KEY_VAPID: 'BBV7B9l_nBEBZbR4KvX67cD9eVUcELSOsbd3OOa5MuLgHWFFedo7cLHqiDSyDPK9G-7yTyLu79KV77o_0M7wJ7M'\n}\n","import { AcceptDigitalModel } from '@/domain/models'\nimport { GetDigitalAccepts } from '@/domain/usecases/accept-digital'\nimport { RemoteGetAcceptDigital } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetAcceptDigital = (): GetDigitalAccepts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetAcceptDigital(url, httpClient)\n}\n","import { OpenUrlDocumentAccept } from '@/domain/usecases/accept-digital'\nimport { RemoteOpenUrlDocAccept } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\n\nexport const makeOpenUrlDocAcceptFactory = (): OpenUrlDocumentAccept => {\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenUrlDocAccept(httpClient)\n}\n","\nimport { OpenDocumentAccept } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { RemoteOpenDocumentAccept } from '@/data/usecases'\n\nexport const makeOpenDocumentAcceptFactory = (): OpenDocumentAccept => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenDocumentAccept(url, httpClient)\n}\n","import { CreditCardModel } from '@/domain/models'\nimport { GetCreditCard } from '@/domain/usecases'\nimport { RemoteGetCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetCreditCard = (): GetCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetCreditCard(url, httpClient)\n}\n","import { PayWithCreditCard } from '@/domain/usecases'\nimport { RemotePayWithCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePayWithCreditCard = (): PayWithCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePayWithCreditCard(url, httpClient)\n}\n","import { SaveCreditCard } from '@/domain/usecases'\nimport { RemoteSaveCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveCreditCard = (): SaveCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveCreditCard(url, httpClient)\n}\n","import { AuthenticationModel } from '@/domain/models'\nimport { Authentication } from '@/domain/usecases'\nimport { RemoteAuthentication } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAuthentication = (): Authentication => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAuthentication(url, httpClient)\n}\n","import { AuthenticationAdmin, AuthenticationAdminResult } from '@/domain/usecases'\nimport { RemoteAuthenticationAdmin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAuthenticationAdmin = (): AuthenticationAdmin => {\n const url = env.API_LOGIN_URL\n const identificadorAplicação = env.API_LOGIN_IDENTIFICADOR_APP\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAuthenticationAdmin(url, identificadorAplicação, httpClient)\n}\n","import { ClientModel } from '@/domain/models'\nimport { GetClientByCode } from '@/domain/usecases'\nimport { RemoteGetClientByCode } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetClientByCode = (): GetClientByCode => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetClientByCode(url, httpClient)\n}\n","import { UserModel } from '@/domain/models'\nimport { GetUserByDocument } from '@/domain/usecases'\nimport { RemoteGetUser } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUser = (): GetUserByDocument => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUser(url, httpClient)\n}\n","import { PortalLogout } from '@/domain/usecases'\nimport { RemotePortalLogout } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePortalLogout = (): PortalLogout => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePortalLogout(url, httpClient)\n}\n","import { MetricsLogin } from '@/domain/usecases'\nimport { RemoteMetricsLogin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeMetricsLogin = (): MetricsLogin => {\n const url = env.METRICS_LOG_IN_OUT\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteMetricsLogin(url, httpClient)\n}\n","import { ForgotPassword } from '@/domain/usecases'\nimport { RemoteForgotPassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeForgotPassword = (): ForgotPassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteForgotPassword(url, httpClient)\n}\n","import { GetRedesSociais } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '../../http'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { RemoteGetRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetRedesSociais = (): GetRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRedesSociais(url, httpClient)\n}\n","import { UpdatePassword } from '@/domain/usecases'\nimport { RemoteUpdatePassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeUpdatePassword = (): UpdatePassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUpdatePassword(url, httpClient)\n}\n","import { UpdateDefaultPassword } from '@/domain/usecases'\nimport { RemoteUpdateDefaultPassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeUpdateDefaultPassword = (): UpdateDefaultPassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUpdateDefaultPassword(url, httpClient)\n}\n","import { ValidatePasswordRecoveryResult, ValidatePasswordRecovery } from '@/domain/usecases'\nimport { RemoteValidatePasswordRecovery } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeValidatePasswordRecovery = (): ValidatePasswordRecovery => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteValidatePasswordRecovery(url, httpClient)\n}\n","import { NFResultModel } from '@/domain/models'\nimport { RemoteGetNFs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetNFs } from '@/domain/usecases'\n\nexport const makeGetRemoteGetNFs = (): GetNFs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetNFs(url, httpClient)\n}\n","import { RemoteOpenDanfe } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenDanfe } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenDanfe = (): OpenDanfe => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenDanfe(url, httpClient)\n}\n","import { RemoteOpenNfse } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenNfse } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenNfse = (): OpenNfse => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenNfse(url, httpClient)\n}\n","import { RemoteOpenLeaseReceipt } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenLeaseReceipt } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenLeaseReceipt = (): OpenLeaseReceipt => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenLeaseReceipt(url, httpClient)\n}\n","import { SaveRedesSociais } from '@/domain/usecases'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteSaveRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeSaveRedesSociais = (): SaveRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveRedesSociais(url, httpClient)\n}\n","import { AddNewOs } from '@/domain/usecases'\nimport { RemoteAddNewOs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAddNewOs = (): AddNewOs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAddNewOs(url, httpClient)\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\nexport class TravelAlertBuilder {\n constructor (private readonly dateAdapter: DateAdapter) {}\n\n private observation = ''\n\n private addLine (line: string): TravelAlertBuilder {\n this.observation += line\n this.observation += '\\r\\n'\n return this\n }\n\n setDates (\n dataSaida: string,\n horaMinutoSaida: string,\n dataRetorno: string,\n horaMinutoRetorno: string\n ): TravelAlertBuilder {\n const [horaSaida, minutoSaida] = horaMinutoSaida.split(':')\n const [horaRetorno, minutoRetorno] = horaMinutoRetorno.split(':')\n\n const dateStart = this.dateAdapter.parse(dataSaida)\n dateStart.setHours(parseInt(horaSaida))\n dateStart.setMinutes(parseInt(minutoSaida))\n\n const dateEnd = this.dateAdapter.parse(dataRetorno)\n dateEnd.setHours(parseInt(horaRetorno))\n dateEnd.setMinutes(parseInt(minutoRetorno))\n\n const dataSaidaFormatada = this.dateAdapter.format(dateStart, 'DD/MM/YYYY HH:mm')\n const dataRetornoFormatada = this.dateAdapter.format(dateEnd, 'DD/MM/YYYY HH:mm')\n\n return this.addLine(`Aviso de Viagem de ${dataSaidaFormatada} á ${dataRetornoFormatada}`)\n }\n\n requester (requester: string): TravelAlertBuilder {\n return this.addLine(`Responsável pelo Aviso: ${requester}`)\n }\n\n emailRequester (email: string): TravelAlertBuilder {\n return this.addLine(`E-mail do responsável: ${email}`)\n }\n\n phone1Requester (phone: string): TravelAlertBuilder {\n return this.addLine(`Telefone 1: ${phone}`)\n }\n\n phone2Requester (phone: string): TravelAlertBuilder {\n if (phone) {\n return this.addLine(`Telefone 2: ${phone}`)\n }\n return this\n }\n\n addResponsible (responsible: AddTravelAlertOsResponsible): TravelAlertBuilder {\n this.addLine(`Nome: ${responsible.nome}`)\n responsible.endereco && this.addLine(`Endereço do responsável: ${responsible.endereco}`)\n responsible.telefone1 && this.addLine(`Telefone1 do responsável: ${responsible.telefone1}`)\n responsible.telefone2 && this.addLine(`Telefone2 do responsável: ${responsible.telefone2}`)\n responsible.observacao && this.addLine(`Observações do responsável: ${responsible.observacao}`)\n return this\n }\n\n addResponsibles (chavesSomenteComCentralMonitoramento: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (chavesSomenteComCentralMonitoramento) {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Responsáve${responsibles.length > 1 ? 'is' : 'l'} das Chaves da residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n }\n }\n }\n\n addAuthorized (possuiAutorizados: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (!possuiAutorizados) {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Autorizado${responsibles.length > 1 ? 's' : ''} a entrar na Residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n }\n }\n }\n\n addVehicle (vehicle: AddTravelAlertOsVehicle): TravelAlertBuilder {\n this.addLine(`Veículo Placa: ${vehicle.placa}`)\n\n if (vehicle.possuiResponsaveis && vehicle.responsaveis.length) {\n this.addLine('Estará com a chave do veículo o seguinte responsável: ')\n vehicle.responsaveis.forEach(resp => { this.addResponsible(resp) })\n } else {\n this\n .addLine('Somente a central de monitoramento estará com as chaves do veículo.')\n }\n\n if (vehicle.possuiAutorizados && vehicle.autorizados.length) {\n this.addLine('Estará autorizado a utilizar o veículo o seguinte responsável: ')\n vehicle.autorizados.forEach(authorized => { this.addResponsible(authorized) })\n } else {\n this\n .addLine('Ninguém está autorizado a utilizar o veículo.')\n }\n\n return this\n }\n\n addVehicles (possuiVeiculosCuidadosCentral: boolean, vehicles: AddTravelAlertOsVehicle[]): TravelAlertBuilder {\n if (!possuiVeiculosCuidadosCentral || !vehicles.length) {\n return this\n .addLine('Não ficarão veículos sobre cuidados da empresa.')\n .addLine('')\n } else {\n this\n .addLine(`Ficará sobre cuidados da empresa o${vehicles.length > 1 ? 's' : ''} seguinte${vehicles.length > 1 ? 's' : ''} veículo${vehicles.length > 1 ? 's' : ''}: `)\n .addLine('')\n\n vehicles.forEach(vehicle => { this.addVehicle(vehicle) })\n\n return this.addLine('')\n }\n }\n\n addRecommendations (recommendations: string): TravelAlertBuilder {\n if (recommendations) {\n return this\n .addLine('')\n .addLine(`Algumas Recomendações: ${recommendations}`)\n }\n return this\n }\n\n build (): string {\n return this.observation\n }\n}\n","import jwt_decode from 'jwt-decode'\nimport { Decoder } from '@/data/protocols/'\n\nexport class JwtAdapter implements Decoder {\n decode (token: string): any {\n try {\n const plaintext: any = jwt_decode(token)\n return plaintext\n } catch (error) {\n return null\n }\n }\n}\n","import { DateAdapter, DateDiffInDaysParams } from '@/data/protocols'\nimport moment from 'moment'\nmoment.locale('pt-br')\n\nexport class MomentDateAdapter implements DateAdapter {\n diffInDays (dates: DateDiffInDaysParams): number {\n const { startDate, endDate } = dates\n const diff = moment(startDate).startOf('day').diff(moment(endDate).startOf('day'), 'days')\n\n return diff < 0 ? diff * (-1) : diff\n }\n\n parse (date: Date | string): Date {\n return moment(date).startOf('day').toDate()\n }\n\n format (date: Date | string, dateFormat: string = 'DD/MM/YYYY'): string {\n if (!date) {\n return 'Data inválida'\n }\n\n return moment(date).format(dateFormat)\n }\n\n today (): Date {\n return moment().toDate()\n }\n\n daysAgo (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(days, 'days').toDate()\n }\n\n yearsAgo (years: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(years, 'years').toDate()\n }\n\n daysLater (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).add(days, 'days').toDate()\n }\n\n monthAgo (month: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(month, 'month').toDate()\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { MomentDateAdapter } from '@/infra/adapters'\n\nexport const makeDateAdapterFactory = (): DateAdapter => {\n return new MomentDateAdapter()\n}\n","import { AddTravelAlertOs } from '@/domain/usecases'\nimport { RemoteAddTravelAlertOs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { makeTravelAlertBuilder } from '@/main/builders'\nimport env from '@/main/config/env'\n\nexport const makeAddTravelAlertOs = (): AddTravelAlertOs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAddTravelAlertOs(\n url,\n httpClient,\n makeTravelAlertBuilder()\n )\n}\n","import { TravelAlertBuilder } from '@/data/builders'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeTravelAlertBuilder = (): TravelAlertBuilder => {\n return new TravelAlertBuilder(makeDateAdapterFactory())\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { RemoteGetServiceOrders } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetServiceOrders = (): GetServiceOrders => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetServiceOrders(url, httpClient)\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance } from '@/domain/usecases'\nimport { RemoteGetOsAttendance } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetOsAttendance = (): GetOsAttendance => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetOsAttendance(url, httpClient)\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetServiceOrderDetail } from '@/data/usecases/'\nimport env from '@/main/config/env'\n\nexport const makeGetServiceOrderDetail = (): GetServiceOrderDetail => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetServiceOrderDetail(url, httpClient)\n}\n","import { ConfigModel } from '@/domain/models'\nimport { GetUnitConfig } from '@/domain/usecases'\nimport { RemoteGetUnitConfig } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUnitConfig = (): GetUnitConfig => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUnitConfig(url, httpClient)\n}\n","import { ThemeModel } from '@/domain/models'\nimport { GetTheme } from '@/domain/usecases'\nimport { RemoteGetTheme } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTheme = (): GetTheme => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTheme(url, httpClient)\n}\n","import { Unidade } from '@/domain/models'\nimport { GetUnits } from '@/domain/usecases'\nimport { RemoteGetUnits } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUnits = (): GetUnits => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUnits(url, httpClient)\n}\n","import { ProspectConfigsModel } from '@/domain/models'\nimport { GetProspectConfigs } from '@/domain/usecases'\nimport { RemoteGetProspectConfigs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetProspectConfigs = (): GetProspectConfigs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetProspectConfigs(url, httpClient)\n}\n","import { ProspectRegistration, ProspectRegistrationResult } from '@/domain/usecases'\nimport { RemoteProspectRegistration } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeProspectRegistration = (): ProspectRegistration => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteProspectRegistration(url, httpClient)\n}\n","import { RemoteTestEmail } from '@/data/usecases'\nimport { TestEmail } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeTestEmail = (): TestEmail => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteTestEmail(url, httpClient)\n}\n","import { RemoteSaveUnitConfig } from '@/data/usecases'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveUnitConfig = (): SaveUnitConfig => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveUnitConfig(url, httpClient)\n}\n","import { SaveTheme } from '@/domain/usecases'\nimport { RemoteSaveTheme } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveTheme = (): SaveTheme => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveTheme(url, httpClient)\n}\n","import { UploadFile } from '@/domain/usecases'\nimport { RemoteUploadFile } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { FileModel } from '@/domain/models'\n\nexport const makeUploadFile = (): UploadFile => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUploadFile(url, httpClient)\n}\n","import { SaveProspectConfigs } from '@/domain/usecases'\nimport { RemoteSaveProspectConfig } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveProspectConfigs = (): SaveProspectConfigs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveProspectConfig(url, httpClient)\n}\n","import { EventsSettingsModel } from '@/domain/models'\nimport { GetEventsSettings } from '@/domain/usecases'\nimport { RemoteGetEventsSettings } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetEventsSettings = (): GetEventsSettings => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetEventsSettings(url, httpClient)\n}\n","import { ShowEvents } from '@/domain/usecases'\nimport { RemoteShowEvents } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeShowEvents = (): ShowEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteShowEvents(url, httpClient)\n}\n","import { GetSigmaDeskConnections } from '@/domain/usecases'\nimport { RemoteGetSigmaDeskConnections } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { SigmaDeskConnectionModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskConnectionsFactory = (): GetSigmaDeskConnections => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskConnections(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { ClaimsResult } from '@/domain/models'\nimport { RemoteGetSacList } from '@/data/usecases/sac'\nimport { GetSacList } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSacList = (): GetSacList => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n return new RemoteGetSacList(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteCreateSac } from '@/data/usecases/sac'\nimport { CreateSac } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeCreateSac = (): CreateSac => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteCreateSac(url, httpClient)\n}\n","import { TicketModel } from '@/domain/models'\nimport { GetTickets } from '@/domain/usecases'\nimport { RemoteGetTickets } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTickets = (): GetTickets => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTickets(url, httpClient)\n}\n","import { GetTicketPix } from '@/domain/usecases'\nimport { RemoteGetTicketPix } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTicketPix = (): GetTicketPix => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTicketPix(url, httpClient)\n}\n","import { GenerateBankSlip } from '@/domain/usecases'\nimport { RemoteGenerateBankSlip } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGenerateBankSlip = (): GenerateBankSlip => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGenerateBankSlip(url, httpClient)\n}\n","import { OpenBankSlip } from '@/domain/usecases'\nimport { RemoteOpenBankSlip } from '@/data/usecases'\nimport { makeGenerateBankSlip, makeGenerateInsideBankSlip } from '@/main/factories/usecases'\n\nexport const makeOpenBankSlip = (): OpenBankSlip => {\n const generateBankSlip = makeGenerateBankSlip()\n const generateInsideBankSlip = makeGenerateInsideBankSlip()\n\n return new RemoteOpenBankSlip(generateBankSlip, generateInsideBankSlip)\n}\n","import { GenerateInsideBankSlip } from '@/domain/usecases'\nimport { RemoteGenerateInsideBankSlip } from '@/data/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeGenerateBankSlip } from '@/main/factories/usecases'\n\nexport const makeGenerateInsideBankSlip = (): GenerateInsideBankSlip => {\n const dateAdapter = makeDateAdapterFactory()\n const generateBankSlip = makeGenerateBankSlip()\n\n return new RemoteGenerateInsideBankSlip(dateAdapter, generateBankSlip)\n}\n","import { OpenStatementOfDebts } from '@/domain/usecases'\nimport { RemoteOpenStatementOfDebts } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeOpenStatementOfDebts = (): OpenStatementOfDebts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenStatementOfDebts(url, httpClient)\n}\n","import { TrackModel, TrackResult } from '@/domain/models'\nimport { GetTrackList, GetTrackParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTrackList implements GetTrackList {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getTrackList (params: GetTrackParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/rastreamento`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (trackRaw: TrackResult[]): TrackModel[] {\n return trackRaw?.map(track => ({\n codInterno: track.CodInterno,\n id: track.Id,\n placa: track.Placa\n }))\n }\n}\n","import { TrackDetailsModel, TrackDetailsResult, FuelType } from '@/domain/models'\nimport { GetTrackDetails, GetTrackDetailsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetDetailTrack implements GetTrackDetails {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getDetails (params: GetTrackDetailsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/detalhesRastreamento`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToModel(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (trackDetails: TrackDetailsResult): TrackDetailsModel {\n return {\n id: trackDetails.Id,\n cor: trackDetails.Cor,\n ano: trackDetails.Ano,\n placa: trackDetails.Placa,\n modelo: trackDetails.Modelo,\n combustivel: trackDetails.Combustivel.toUpperCase() as FuelType\n }\n }\n}\n","import { TrackResult } from '@/domain/models'\nimport { GetTrackList } from '@/domain/usecases'\nimport { RemoteGetTrackList } from '@/data/usecases/track'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTrackListFactory = (): GetTrackList => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTrackList(url, httpClient)\n}\n","import { TrackDetailsResult } from '@/domain/models'\nimport { GetTrackDetails } from '@/domain/usecases'\nimport { RemoteGetDetailTrack } from '@/data/usecases/track'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTrackDetailsFactory = (): GetTrackDetails => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetDetailTrack(url, httpClient)\n}\n","import { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { AuthenticationModel, ClientAddress, ClientModel } from '@/domain/models'\nimport { makePortalLogout } from '@/main/factories/usecases'\nimport { authenticationState, localStorageState, jwtAdapterAtom, dateAdapterAtom } from '@/presentation/components'\nimport { useNotify } from '@/presentation/hooks'\nimport { version } from '../../../package.json'\n\nexport const KEY_ACCESS_TOKEN = 'access_token'\nexport const KEY_SAVE_USER = 'save_user'\nconst EMMITERS_AUTHORIZED = [\n 'http://integraservice.insidesistemas.com.br',\n 'https://login.insidesistemas.com.br/api/v1/'\n]\nconst ROLES_AUTHORIZED = [\n 'Portal',\n 'Service'\n]\n\ntype SavedUser = {\n username: string\n saveUsername: boolean\n}\n\ntype AuthProps = {\n getCurrentClient: () => string\n getClient: () => ClientModel\n getSaveUser: () => SavedUser\n saveUser: (user: SavedUser) => void\n setClient: (client: ClientModel) => void\n login: (token: AuthenticationModel) => void\n logout: () => void\n isSignedIn: () => boolean\n isAdmin: () => boolean\n getAddress: (adressCode: number) => ClientAddress | undefined\n}\n\nexport const useAuth = (): AuthProps => {\n const notify = useNotify()\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n const jwtAdapter = useRecoilValue(jwtAdapterAtom)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n\n const isAdmin = useCallback((): boolean => {\n const accessToken = localStorageAdapter.get(KEY_ACCESS_TOKEN)\n const tokenDecode = jwtAdapter.decode(accessToken?.access_token)\n const currentClient = tokenDecode?.sub as string\n const loginWithCode = /^[0-9]+$/.test(currentClient?.toString())\n\n const isAdmin =\n currentClient?.toString().toUpperCase() === 'ADMIN' ||\n currentClient?.toString().endsWith('@insidesistemas.com.br') ||\n !loginWithCode\n\n return isAdmin\n }, [autentication?.accessToken])\n\n const login = (accessToken: AuthenticationModel): void => {\n localStorageAdapter.set(KEY_ACCESS_TOKEN, accessToken)\n setAuthentication(currentState => ({\n ...currentState,\n accessToken,\n registerLogin: true\n }))\n }\n\n const logout = useCallback((): void => {\n localStorageAdapter.set(KEY_ACCESS_TOKEN, undefined)\n setAuthentication({\n client: null as unknown as ClientModel,\n accessToken: null as unknown as AuthenticationModel,\n registerLogin: false\n })\n }, [])\n\n const getCurrentClient = useCallback((): string => {\n const accessToken = localStorageAdapter.get(KEY_ACCESS_TOKEN)\n const tokenDecode = jwtAdapter.decode(accessToken?.access_token)\n return tokenDecode?.sub as string\n }, [autentication?.accessToken])\n\n const getClient = useCallback((): ClientModel => {\n const accessToken = localStorageAdapter.get(KEY_ACCESS_TOKEN)\n\n if (accessToken?.access_token) {\n const accessTokenDecode = jwtAdapter.decode(accessToken.access_token)\n const codeClient = accessTokenDecode.sub as string\n\n if (codeClient.toUpperCase() === 'ADMIN') {\n return {\n ...null as unknown as ClientModel,\n codCliente: 0,\n nomeCliente: codeClient.toUpperCase()\n }\n } else if (codeClient?.endsWith('@insidesistemas.com.br')) {\n return {\n ...null as unknown as ClientModel,\n codCliente: 0,\n nomeCliente: accessTokenDecode?.nome,\n email: accessTokenDecode?.sub\n }\n } else if (isNaN(parseInt(codeClient))) {\n return {\n ...null as unknown as ClientModel,\n codCliente: 0,\n nomeCliente: codeClient\n }\n } else {\n return autentication.client\n }\n }\n\n return autentication.client\n }, [autentication.client])\n\n const isSignedIn = useCallback((): boolean => {\n const today = dateAdapter.today()\n const expireDate = new Date(0)\n const currentClient = getCurrentClient()\n const isAdmin = currentClient?.toString().toUpperCase() === 'ADMIN' || currentClient?.toString().endsWith('@insidesistemas.com.br')\n\n if (!autentication?.accessToken?.access_token) {\n return false\n }\n\n const auth = jwtAdapter.decode(autentication?.accessToken?.access_token)\n if (!isAdmin) {\n if (!auth || !EMMITERS_AUTHORIZED.includes(auth.iss)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n\n const roles = auth['integraservice-webapi'] || auth['portal-service']\n if (typeof roles === 'string') {\n if (!ROLES_AUTHORIZED.includes(roles)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n } else {\n if ((roles as []).every(role => !ROLES_AUTHORIZED.includes(role))) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n }\n }\n\n expireDate.setUTCSeconds(auth.exp)\n const isExpired = today > expireDate\n const hadAccessToken = !!localStorageAdapter.get(KEY_ACCESS_TOKEN)\n\n if (isExpired && hadAccessToken) {\n notify.error('Sessão Expirada, faça o login novamente!')\n logout()\n if (getCurrentClient()) {\n void makePortalLogout()\n .logout({ cliente: parseInt(getCurrentClient()), version })\n .catch(console.error)\n }\n\n return false\n }\n\n return true\n }, [autentication?.accessToken])\n\n const setClient = useCallback((client: ClientModel): void => {\n setAuthentication(currentState => ({ ...currentState, client }))\n }, [])\n\n const getAddress = (adressCode: number): ClientAddress | undefined => {\n const client = getClient()\n const adresss = client.enderecoAlternativo?.find(address => address.codInterno === adressCode)\n\n return adresss\n }\n\n const getSaveUser = (): SavedUser => {\n let savedUser = localStorageAdapter.get(KEY_SAVE_USER) as SavedUser\n\n if (!savedUser) {\n savedUser = {\n username: '',\n saveUsername: false\n }\n }\n\n return savedUser\n }\n\n const saveUser = (user: SavedUser): void => {\n localStorageAdapter.set(KEY_SAVE_USER, user)\n }\n\n return {\n login,\n logout,\n isSignedIn,\n setClient,\n getCurrentClient,\n getClient,\n getAddress,\n getSaveUser,\n saveUser,\n isAdmin\n }\n}\n","import { atom, selector } from 'recoil'\nimport { ConfigModel, FinancialConfigs, GeneralConfigs, InvoiceConfigs, MenuAccessPermissionsConfigs, ServiceOrderConfigs, Unidade } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'settingsLoadingState',\n default: false\n})\n\nexport const currentUnitSettingsState = atom({\n key: 'currentUnitSettingsState',\n default: 0\n})\n\nexport const unitsSettingsState = atom({\n key: 'unitsSettingsState',\n default: [] as Unidade[]\n})\n\nexport const initialConfigsState = atom({\n key: 'initialConfigsState',\n default: null as unknown as ConfigModel\n})\n\nexport const financialConfigsState = atom({\n key: 'financialConfigsState',\n default: null as unknown as FinancialConfigs\n})\n\nexport const generalConfigsState = atom({\n key: 'generalConfigsState',\n default: null as unknown as GeneralConfigs\n})\n\nexport const invoiceConfigsState = atom({\n key: 'invoiceConfigsState',\n default: null as unknown as InvoiceConfigs\n})\n\nexport const serviceOrderConfigsState = atom({\n key: 'serviceOrderConfigsState',\n default: null as unknown as ServiceOrderConfigs\n})\n\nexport const menuAccessPermissionsConfigsState = atom({\n key: 'menuAccessPermissionsConfigsState',\n default: null as unknown as MenuAccessPermissionsConfigs\n})\n\nexport const configsState = selector({\n key: 'configsState',\n get: ({ get }) => {\n const financialConfigs = get(financialConfigsState)\n const generalConfigs = get(generalConfigsState)\n const invoiceConfigs = get(invoiceConfigsState)\n const serviceOrderConfigs = get(serviceOrderConfigsState)\n const menuAccessPermissionsConfigs = get(menuAccessPermissionsConfigsState)\n\n return ({\n ...financialConfigs,\n ...generalConfigs,\n ...invoiceConfigs,\n ...serviceOrderConfigs,\n liberacoesPortal: menuAccessPermissionsConfigs\n }) as ConfigModel\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardConfigState, isOpenSaveConfigState } from '@/presentation/pages/Settings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveConfigState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardConfigState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n flex: 1\n },\n\n containerHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n headerText: {\n padding: 16\n },\n headerChip: {\n margin: 16,\n backgroundColor: 'rgba(91, 42, 140, 1)',\n borderRadius: 15\n },\n\n cardContainer: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { BoletoInsideConfigs, FinancialConfigs } from '@/domain/models'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { PaymentAvailableToUpdate, HidePaymentMethods, financialConfigsState, ActionsButtons } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const FinancialSettings: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [financialConfigs, setFinancialConfig] = useRecoilState(financialConfigsState)\n const [initialFinancialConfigs] = useState(financialConfigs)\n\n const themeClient = getThemeClient()\n\n const handleChange = (param: keyof FinancialConfigs & BoletoInsideConfigs, value: boolean | string): void => {\n setFinancialConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialFinancialConfigs) !== JSON.stringify(financialConfigs)\n }\n\n return (\n \n \n {!financialConfigs\n ? \n : <>\n {financialConfigs.permitePagamentoCartao && \n <>\n handleChange('validaCartaoCredito', !financialConfigs.validaCartaoCredito)}\n />\n handleChange('atualizaAutomaticoCartao', !financialConfigs.atualizaAutomaticoCartao)}\n />\n handleChange('visualizaFaturaCartaoVencida', !financialConfigs.visualizaFaturaCartaoVencida)}\n />\n \n }\n handleChange('bolEntradaConfirmada', !financialConfigs.bolEntradaConfirmada)}\n />\n handleChange('bolExibeOriginal', !financialConfigs.bolExibeOriginal)}\n />\n\n handleChange('bolAtualizaBoletos', !financialConfigs.bolAtualizaBoletos)}\n >\n \n \n\n handleChange('bolOcultaFormasPgto', !financialConfigs.bolOcultaFormasPgto)}\n >\n \n \n\n handleChange('exibeAlteracaoCartao', !financialConfigs.exibeAlteracaoCartao)}\n >\n handleChange('emailAlteracaoCartao', text)}\n maxLength={300}\n />\n \n\n {/* // TODO: adicionar configuração de email de pagamento com cartão */}\n {financialConfigs.permitePagamentoCartao &&\n handleChange('pagamentoCartaoAtivo', !financialConfigs.pagamentoCartaoAtivo)}\n />\n }\n \n }\n \n {hasChanged() && }\n \n )\n}\n","import { GeneralConfigs } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingGeneralSettingsState = atom({\n key: 'isLoadingGeneralSettingsState',\n default: true\n})\n\nexport const initialGeneralConfigsState = atom({\n key: 'initialGeneralConfigsState',\n default: null as unknown as GeneralConfigs\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { GeneralConfigs } from '@/domain/models'\nimport { TestEmail } from '@/domain/usecases'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { ActionsButtons, EmailSendingTester, generalConfigsState } from '@/presentation/pages/Settings/components'\nimport { initialGeneralConfigsState } from './atom'\n\ntype GeneralSettingsProps = {\n testEmail: TestEmail\n}\n\nexport const GeneralSettings: React.FC = ({ testEmail }) => {\n const { getThemeClient } = useThemeClient()\n const [generalConfigs, setGeneralConfig] = useRecoilState(generalConfigsState)\n const [initialGeneralConfigs, setInitialGeneralConfigs] = useRecoilState(initialGeneralConfigsState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setInitialGeneralConfigs(generalConfigs)\n }, [initialGeneralConfigs])\n\n const handleChange = (param: keyof GeneralConfigs, value: string | boolean | number): void => {\n setGeneralConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(initialGeneralConfigs) !== JSON.stringify(generalConfigs)\n }, [generalConfigs])\n\n return (\n \n \n {!generalConfigs\n ? \n : <>\n \n\n handleChange('copia', !generalConfigs.copia)}\n />\n\n handleChange('enviaEmailViagem', !generalConfigs.enviaEmailViagem)}\n >\n handleChange('emailViagem', text)}\n maxLength={300}\n style={{\n flex: 1\n }}\n />\n \n\n handleChange('exibeChavesAvisoViagem', !generalConfigs.exibeChavesAvisoViagem)}\n />\n\n handleChange('visualizaDetalhesContrato', !generalConfigs.visualizaDetalhesContrato)}\n />\n\n {}}\n readonly={true}\n >\n handleChange('limiteDiasVisualizaCritica', parseInt(dias))}\n maxLength={300}\n />\n \n \n }\n \n {hasChanged() && }\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { TextInput } from 'react-native-paper'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { TestEmail } from '@/domain/usecases'\nimport { CardSwitch, Button, Stack, Text } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { initialGeneralConfigsState, generalConfigsState, isLoadingTestMailState } from '@/presentation/pages/Settings/components'\n\ntype EmailSendingTesterProps = {\n testEmail: TestEmail\n}\n\nexport const EmailSendingTester: React.FC = ({ testEmail }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [generalConfigs, setGeneralConfig] = useRecoilState(generalConfigsState)\n const [initialGeneralConfigs, setInitialGeneralConfigs] = useRecoilState(initialGeneralConfigsState)\n const [mailSended, setMailSended] = useState(false)\n const [responseMail, setResponseMail] = useState('')\n const [isLoadingTestMail, setLoadingTestMail] = useRecoilState(isLoadingTestMailState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setInitialGeneralConfigs({ ...generalConfigs })\n }, [initialGeneralConfigs])\n\n const handleChange = (param: 'email' | 'nome', value: string | boolean): void => {\n setGeneralConfig(currentState => ({ ...currentState, [param]: value }))\n setMailSended(false)\n }\n\n const handleSendTestMail = (): void => {\n setLoadingTestMail(true)\n\n const testEmailParams = {\n email: generalConfigs.email,\n copia: generalConfigs.copia,\n nome: generalConfigs.nome\n }\n\n testEmail\n .test(testEmailParams)\n .then(isValid => {\n setMailSended(isValid)\n if (isValid) {\n setResponseMail('O e-mail de teste foi enviado com sucesso! Verifique sua caixa de entrada e lixo eletrônico')\n } else {\n throw new Error('O e-mail de teste não pode ser enviado, verifique os dados de acesso e tente novamente')\n }\n })\n .catch(error => {\n setMailSended(false)\n setResponseMail(error.message)\n })\n .finally(() => setLoadingTestMail(false))\n }\n\n return (\n {}}\n readonly={true}\n >\n \n handleChange('nome', text)}\n maxLength={50}\n style={{\n flex: 0.3\n }}\n />\n handleChange('email', text)}\n maxLength={300}\n style={{\n flex: 0.7\n }}\n />\n mailSended\n ? \n : \n }\n onPress={handleSendTestMail}\n loading={isLoadingTestMail}\n disabled={mailSended}\n />\n \n <>\n {mailSended &&\n \n {responseMail &&\n <>\n \n {responseMail}\n \n }\n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingTestMailState = atom({\n key: 'isLoadingTestMailState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { InvoiceConfigs } from '@/domain/models'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { ActionsButtons, invoiceConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const InvoicesSettings: React.FC = () => {\n const [invoiceConfigs, setInvoiceConfig] = useRecoilState(invoiceConfigsState)\n const [initialInvoiceConfigs] = useState(invoiceConfigs)\n\n const handleChangeConfig = (param: keyof InvoiceConfigs, value: boolean): void => {\n setInvoiceConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialInvoiceConfigs) !== JSON.stringify(invoiceConfigs)\n }\n\n return (\n \n {!invoiceConfigs\n ? \n : <>\n \n handleChangeConfig('nfsOcultarInfos', !invoiceConfigs.nfsOcultarInfos)}\n />\n handleChangeConfig('nfsOcultarLink', !invoiceConfigs.nfsOcultarLink)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { ServiceOrderConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, serviceOrderConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const ServiceOrderSettings: React.FC = () => {\n const [serviceOrderConfigs, setServiceOrderConfig] = useRecoilState(serviceOrderConfigsState)\n const [initialServiceOrderConfigs] = useState(serviceOrderConfigs)\n\n const utilizaEmpresaPadrao = serviceOrderConfigs?.empresaPadraoOS\n\n const handleChange = (param: keyof ServiceOrderConfigs, value: string | boolean): void => {\n setServiceOrderConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialServiceOrderConfigs) !== JSON.stringify(serviceOrderConfigs)\n }\n\n return (\n \n {!serviceOrderConfigs\n ? \n : \n handleChange('exibirOsFechadas', !serviceOrderConfigs.exibirOsFechadas)}\n />\n\n handleChange('osSemTecnico', !serviceOrderConfigs.osSemTecnico)}\n />\n handleChange('limitaOs', !serviceOrderConfigs.limitaOs)}\n />\n\n handleChange('abrirOsSemFaturamento', !serviceOrderConfigs.abrirOsSemFaturamento)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('exibeMensagemAbrirOs', !serviceOrderConfigs.exibeMensagemAbrirOs)}\n >\n handleChange('mensagemAberturaOs', text)}\n />\n \n\n handleChange('empresaPadraoOS', !utilizaEmpresaPadrao)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('enviarAvisoAberturaOs', !serviceOrderConfigs.enviarAvisoAberturaOs)}\n >\n handleChange('emailOs', text)}\n />\n \n \n }\n {hasChanged() && }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n selectBoxMobile: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'grab',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FormaPagamento } from '@/domain/models'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const PaymentAvailableToUpdate: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, update: boolean): void => {\n let formasPagamentoAtualiza: FormaPagamento[]\n let formasPagamentoNaoAtualiza: FormaPagamento[]\n\n if (update) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoNaoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoNaoAtualiza = financialConfigs.formasPagamentoNaoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoAtualiza = [...financialConfigs.formasPagamentoAtualiza, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoAtualiza = financialConfigs.formasPagamentoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoNaoAtualiza = [...financialConfigs.formasPagamentoNaoAtualiza, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamentoAtualiza = formasPagamentoAtualiza\n newConfig.formasPagamentoNaoAtualiza = formasPagamentoNaoAtualiza\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, update: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const handleClick = (codFormaPagamento: string, update: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const acceptDrop = (e: React.DragEvent): void => {\n e.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento atualizadas\n \n {financialConfigs.formasPagamentoAtualiza.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n \n )}\n \n \n\n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento não atualizadas\n
\n {financialConfigs.formasPagamentoNaoAtualiza.map((item) =>\n onDrag(event, item.codigo.toString())}\n onClick={() => handleClick(item.codigo.toString(), true)}\n style={styles.optionSelectorChip}\n >\n \n {`${item.codigo} - ${item.descricao}`}\n
\n )}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useRecoilState } from 'recoil'\nimport { FormaPagamento } from '@/domain/models'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const HidePaymentMethods: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, hide: boolean): void => {\n let formasPagamento: FormaPagamento[]\n let formasPagamentoOculta: FormaPagamento[]\n\n if (hide) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamento\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamento = financialConfigs.formasPagamento\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoOculta = [...financialConfigs.formasPagamentoOcultas, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoOcultas\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoOculta = financialConfigs.formasPagamentoOcultas\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamento = [...financialConfigs.formasPagamento, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamento = formasPagamento\n newConfig.formasPagamentoOcultas = formasPagamentoOculta\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, hide: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const handleClick = (codFormaPagamento: string, hide: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento a apresentar\n
\n {financialConfigs.formasPagamento.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), true)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n )}\n \n \n\n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento ocultas\n
\n {financialConfigs.formasPagamentoOcultas.map((formaPagamento) => (\n onDrag(event, formaPagamento.codigo.toString())}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n style={styles.optionSelectorChip}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n ))}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import React, { useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, menuAccessPermissionsConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const MenuAccessPermissions: React.FC = () => {\n const [menuAccessPermissionsConfigs, setMenuAccessPermissionsConfig] = useRecoilState(menuAccessPermissionsConfigsState)\n const [initialMenuAccessPermissionsConfigs] = useState(menuAccessPermissionsConfigs)\n\n const handleChangeSetting = (param: keyof MenuAccessPermissionsConfigs, value: boolean): void => {\n setMenuAccessPermissionsConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialMenuAccessPermissionsConfigs) !== JSON.stringify(menuAccessPermissionsConfigs)\n }\n\n return (\n \n {!menuAccessPermissionsConfigs\n ? \n : <>\n \n handleChangeSetting('aceiteDigital', !menuAccessPermissionsConfigs.aceiteDigital)}\n />\n handleChangeSetting('contrato', !menuAccessPermissionsConfigs.contrato)}\n />\n handleChangeSetting('cartao', !menuAccessPermissionsConfigs.cartao)}\n />\n handleChangeSetting('documentosUteis', !menuAccessPermissionsConfigs.documentosUteis)}\n />\n handleChangeSetting('boleto', !menuAccessPermissionsConfigs.boleto)}\n />\n handleChangeSetting('notaFiscal', !menuAccessPermissionsConfigs.notaFiscal)}\n />\n {\n handleChangeSetting('monitoramento', !menuAccessPermissionsConfigs.monitoramento)\n }}\n />\n handleChangeSetting('os', !menuAccessPermissionsConfigs.os)}\n />\n handleChangeSetting('rastreamento', !menuAccessPermissionsConfigs.rastreamento)}\n />\n handleChangeSetting('sac', !menuAccessPermissionsConfigs.sac)}\n />\n handleChangeSetting('telefonesUteis', !menuAccessPermissionsConfigs.telefonesUteis)}\n />\n handleChangeSetting('viagem', !menuAccessPermissionsConfigs.viagem)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardConfigState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardConfigState)\n const { discardChanges } = useSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardConfigState = atom({\n key: 'isOpenDiscardConfigState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const isOpenSaveOrDiscardConfigState = atom({\n key: 'isOpenSaveOrDiscardConfigState',\n default: false\n})\n\nexport const isLoadingSaveOrDiscardConfigState = atom({\n key: 'isLoadingSaveOrDiscardConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { configsState, initialConfigsState } from '@/presentation/pages/Settings/components'\nimport { isLoadingSaveOrDiscardConfigState, isOpenSaveOrDiscardConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveOrDiscardProps = {\n saveUnitConfig: SaveUnitConfig\n}\n\nexport const ModalOnSaveOrDiscard: React.FC = ({ saveUnitConfig }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { discardChanges } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveOrDiscardConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveOrDiscardConfigState)\n const setInitialConfigs = useSetRecoilState(initialConfigsState)\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n handleClose()\n notify.show('As alterações foram descartadas')\n }\n\n const handleSaveChanges = (): void => {\n setLoading(true)\n handleClose()\n\n saveUnitConfig\n .save(currentConfig)\n .then(hasUpdated => {\n if (hasUpdated) {\n notify.show(`As configurações da unidade ${currentConfig.uniCodigo.toString().padStart(4, '0')} foram gravadas com sucesso`)\n setInitialConfigs(currentConfig)\n } else {\n notify.show(`Não foi possível gravar as configurações da unidade ${currentConfig.uniCodigo}, tente novamente`, { variant: 'error' })\n }\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n handleClose()\n })\n .finally(() => setLoading(false))\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Existem alterações que ainda não foram gravadas na unidade.
Descarte ou grave as alterações para prosseguir
\n\n \n \n \n \n
\n }\n
\n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenSaveConfigState = atom({\n key: 'isOpenSaveConfigState',\n default: false\n})\n\nexport const isLoadingSaveConfigState = atom({\n key: 'isLoadingSaveConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { configsState } from '@/presentation/pages/Settings/components'\nimport { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n saveUnitConfig: SaveUnitConfig\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveUnitConfig }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveConfigState)\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n saveUnitConfig\n .save(currentConfig)\n .then(hasUpdated => {\n if (hasUpdated) {\n notify.show(`As configurações da unidade ${currentConfig.uniCodigo.toString().padStart(4, '0')} foram gravadas com sucesso`)\n startConfig(currentConfig)\n handleClose()\n } else {\n notify.show(`Não foi possível gravar as configurações da unidade ${currentConfig.uniCodigo}, tente novamente`, { variant: 'error' })\n }\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [currentConfig])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n {false && }\n \n \n \n \n }\n \n )\n}\n","import { useCallback } from 'react'\nimport { ConfigModel, FinancialConfigs, GeneralConfigs, InvoiceConfigs, ServiceOrderConfigs } from '@/domain/models'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { initialConfigsState, generalConfigsState, financialConfigsState, invoiceConfigsState, menuAccessPermissionsConfigsState, serviceOrderConfigsState } from '@/presentation/pages/Settings/components'\n\ntype SettingsProps = {\n startConfig: (config: ConfigModel) => void\n discardChanges: () => void\n}\n\nexport const useSettings = (): SettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialConfigsState)\n const setFinancialConfigs = useSetRecoilState(financialConfigsState)\n const setGeneralConfigs = useSetRecoilState(generalConfigsState)\n const setInvoiceConfigs = useSetRecoilState(invoiceConfigsState)\n const setServiceOrderConfigs = useSetRecoilState(serviceOrderConfigsState)\n const setMenuAccessPermissionsConfigs = useSetRecoilState(menuAccessPermissionsConfigsState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (config: ConfigModel): void => {\n setInitialConfigs(config)\n\n setFinancialConfigs({\n bolEntradaConfirmada: config.bolEntradaConfirmada,\n bolExibeOriginal: config.bolExibeOriginal,\n bolAtualizaBoletos: config.bolAtualizaBoletos,\n formasPagamentoAtualiza: config.formasPagamentoAtualiza,\n formasPagamentoNaoAtualiza: config.formasPagamentoNaoAtualiza,\n bolOcultaFormasPgto: config.bolOcultaFormasPgto,\n formasPagamentoOcultas: config.formasPagamentoOcultas,\n formasPagamento: config.formasPagamento,\n exibeAlteracaoCartao: config.exibeAlteracaoCartao,\n emailAlteracaoCartao: config.emailAlteracaoCartao,\n pagamentoCartaoAtivo: config.pagamentoCartaoAtivo,\n permitePagamentoCartao: config.permitePagamentoCartao,\n validaCartaoCredito: config.validaCartaoCredito,\n visualizaFaturaCartaoVencida: config.visualizaFaturaCartaoVencida,\n assuntoEmailConfirmacaoPgto: config.assuntoEmailConfirmacaoPgto,\n atualizaAutomaticoCartao: config.atualizaAutomaticoCartao,\n mensagemSMSConfirmacaoPgto: config.mensagemSMSConfirmacaoPgto,\n mensagemEmailConfirmacaoPgto: config.mensagemEmailConfirmacaoPgto\n } as FinancialConfigs)\n\n setGeneralConfigs({\n uniCodigo: config.uniCodigo,\n uniUnidade: config.uniUnidade,\n nome: config.nome,\n email: config.email,\n copia: config.copia,\n enviaEmailViagem: config.enviaEmailViagem,\n emailViagem: config.emailViagem,\n emailAlteracaoCadastro: config.emailAlteracaoCadastro,\n emailSac: config.emailSac,\n chaveResidencia: config.chaveResidencia,\n exibeChavesAvisoViagem: config.exibeChavesAvisoViagem,\n exibeAlteracaoCadastro: config.exibeAlteracaoCadastro,\n conPorCodigo: config.conPorCodigo,\n servidorSmtp: config.servidorSmtp,\n autentica: config.autentica,\n usuario: config.usuario,\n senha: config.senha,\n porta: config.porta,\n ssl: config.ssl,\n leitura: config.leitura,\n liberacoesPortal: config.liberacoesPortal,\n visualizaDetalhesContrato: config.visualizaDetalhesContrato,\n limiteDiasVisualizaCritica: config.limiteDiasVisualizaCritica\n } as GeneralConfigs)\n\n setInvoiceConfigs({\n nfsOcultarInfos: config.nfsOcultarInfos,\n nfsOcultarLink: config.nfsOcultarLink\n } as InvoiceConfigs)\n\n setServiceOrderConfigs({\n exibirOsFechadas: config.exibirOsFechadas,\n osSemTecnico: config.osSemTecnico,\n limitaOs: config.limitaOs,\n abrirOsSemFaturamento: config.abrirOsSemFaturamento,\n exibeMensagemAbrirOs: config.exibeMensagemAbrirOs,\n mensagemAberturaOs: config.mensagemAberturaOs,\n empresaPadraoOS: config.empresaPadraoOS,\n enviarAvisoAberturaOs: config.enviarAvisoAberturaOs,\n emailOs: config.emailOs,\n enviaListaChave: config.enviaListaChave,\n osEmpresaPadrao: config.osEmpresaPadrao,\n exibeAvisoAberturaOs: config.exibeAvisoAberturaOs,\n avisoAberturaOs: config.avisoAberturaOs\n } as ServiceOrderConfigs)\n\n setMenuAccessPermissionsConfigs(config.liberacoesPortal)\n }\n\n return {\n startConfig,\n discardChanges\n }\n}\n","import { Dimensions } from 'react-native'\nimport { APP_BAR_HEIGTH, PADDING_STATUS_BAR_IOS } from '@/presentation/components'\n\nconst width = Dimensions.get('window').width\nconst height = Dimensions.get('window').height\n\ntype DimensionsProps = {\n width: number\n height: number\n appBarHeight: number\n isMobile: boolean\n openInIOS: boolean\n openInPWA: boolean\n}\n\nconst useMediaQueries = (): DimensionsProps => {\n const isMobile = width < 600\n\n const openInPWA = window.window.matchMedia('(display-mode: standalone)').matches\n\n const openInIOS = /iphone|ipad|ipod/.test(window.window.navigator.userAgent.toLowerCase())\n\n const appBarHeight = APP_BAR_HEIGTH + (openInPWA && openInIOS ? PADDING_STATUS_BAR_IOS : 0)\n\n return {\n width,\n height,\n isMobile,\n openInIOS,\n appBarHeight,\n openInPWA\n }\n}\n\nexport default useMediaQueries\n","type FormatProps = {\n formatCurrency: (amount: number) => string\n removeNewLines: (text: string) => string\n validateCPF: (cpf: string) => boolean\n}\n\nexport const useFormat = (): FormatProps => {\n const formatCurrency = (amount: number): string => {\n return new Intl.NumberFormat(\n 'pt-BR', {\n style: 'currency',\n currency: 'BRL'\n }).format(amount)\n }\n\n const removeNewLines = (text: string): string => {\n return text.replace(/(\\r\\n|\\n|\\r)/gm, ' ')\n }\n\n const validateCPF = (cpf: string): boolean => {\n const cpfNumeros = cpf.replace(/\\D/g, '')\n\n if (cpfNumeros.length !== 11) {\n return false\n }\n\n if (/^(\\d)\\1{10}$/.test(cpfNumeros)) {\n return false\n }\n\n let soma = 0\n for (let i = 0; i < 9; i++) {\n soma += parseInt(cpfNumeros[i]) * (10 - i)\n }\n\n let resto = soma % 11\n const digito1 = resto < 2 ? 0 : 11 - resto\n\n soma = 0\n for (let i = 0; i < 10; i++) {\n soma += parseInt(cpfNumeros[i]) * (11 - i)\n }\n\n resto = soma % 11\n const digito2 = resto < 2 ? 0 : 11 - resto\n\n if (parseInt(cpfNumeros[9]) !== digito1 || parseInt(cpfNumeros[10]) !== digito2) {\n return false\n }\n\n return true\n }\n\n return {\n formatCurrency,\n removeNewLines,\n validateCPF\n }\n}\n","import { theme } from '@/presentation/styles'\nimport { useTheme as useThemePaper } from 'react-native-paper'\n\nexport type AppTheme = typeof theme\n\nexport const useTheme = (): AppTheme => useThemePaper()\n","import { environment } from '@/main/config/env'\n\nexport type ImageBackground = {\n uri: any\n}\n\ntype ImageProps = {\n getImage: (image: string, defaultImage?: 'logo' | 'login') => Promise\n base64toFile: (b64Data: string, fileName: string, contentType?: string, sliceSize?: number) => File\n}\n\nexport const useImage = (): ImageProps => {\n const DEFAULT_PATH_IMAGES = environment === 'development' ? '/img/' : '/portalservice/img/'\n\n const getImage = async (image: string, defaultImage: 'logo' | 'login' = 'logo'): Promise => {\n const file = image?.includes('/img/')\n ? image?.split('/img/').pop()?.split('\\')').shift() as string\n : image\n const imageFolder = `${DEFAULT_PATH_IMAGES}${file}`\n try {\n return await fetch(imageFolder)\n .then(resp => {\n return resp.status === 200 ? imageFolder : ''\n })\n } catch (error) {\n console.log(`Não foi possível localizar a imagem em ${imageFolder}`, error)\n return {\n logo: `${DEFAULT_PATH_IMAGES}logo-inside.svg`,\n login: `${DEFAULT_PATH_IMAGES}background.svg`,\n default: 'LOGO_DEFAULT'\n }[defaultImage]\n }\n }\n\n const base64toFile = (\n b64Data: string,\n fileName: string,\n contentType: string = 'image/png',\n sliceSize: number = 512\n ): File => {\n const byteCharacters = window.atob(b64Data)\n const byteArrays = []\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize)\n\n const byteNumbers = new Array(slice.length)\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n const byteArray = new Uint8Array(byteNumbers)\n byteArrays.push(byteArray)\n }\n\n const blob = new Blob(byteArrays, { type: contentType })\n const file = new File([blob], fileName)\n return file\n }\n\n return { getImage, base64toFile }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError } from '@/domain/errors'\nimport { useAuth, useNotify } from '@/presentation/hooks'\n\ntype CallBackType = (error: Error) => void\ntype ResultType = CallBackType\n\nexport const useErrorHandler = (callback?: CallBackType): ResultType => {\n const notify = useNotify()\n const { logout } = useAuth()\n\n return (error: Error): void => {\n if (error instanceof AccessDeniedError) {\n notify.error(error.message)\n logout()\n } else if (error instanceof ResultWithoutRecordsError) {\n notify.info(error.message)\n } else {\n notify.error(error?.message || 'Ocorreu um erro desconhecido, tente novamente em alguns instantes')\n callback?.(error)\n }\n }\n}\n","import { atom } from 'recoil'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\nimport { ThemeColors, ThemeModel, Unidade } from '@/domain/models'\nimport { theme } from '@/presentation/styles'\n\nexport const isLoadingState = atom({\n key: 'isLoadingThemeState',\n default: true\n})\n\nexport const unitsThemeState = atom({\n key: 'unitsThemeState',\n default: [] as Unidade[]\n})\n\ntype ThemeProps = {\n theme: ThemeModel\n colorSelect: keyof ThemeColors\n}\n\nconst initialTheme: ThemeModel = makeLocalStorageAdapter().get('portalTheme') || {\n ...null as unknown as ThemeModel,\n mainColor: theme.colors.primary,\n menuColor: theme.colors.white,\n loginColor: theme.colors.white,\n buttonSave: theme.colors.secondary\n}\n\nexport const initialThemeState = atom({\n key: 'initialThemeState',\n default: initialTheme\n})\n\nexport const colorSelectState = atom({\n key: 'colorSelectState',\n default: 'mainColor'\n})\n\nexport const themeState = atom({\n key: 'themeClient',\n default: {\n theme: initialTheme,\n colorSelect: 'mainColor'\n }\n})\n\ntype ImageProps = {\n file: File\n scope: 'logo' | 'loginBackground'\n}\n\nexport const imagesState = atom({\n key: 'imagesState',\n default: []\n})\n\nexport const selectedLogoState = atom({\n key: 'selectedLogoState',\n default: null as unknown as File\n})\n\nexport const selectedBackgroundState = atom({\n key: 'selectedBackgroundState',\n default: null as unknown as File\n})\n","import { atom } from 'recoil'\n\nexport const modalOnDiscardChangesThemeState = atom({\n key: 'modalOnDiscardChangesThemeState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const modalOnSaveChangeThemeState = atom({\n key: 'modalOnSaveChangeThemeState',\n default: false\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Button, HStack, Text } from '@/presentation/components'\nimport { modalOnDiscardChangesThemeState } from '../ModalOnDiscardChanges/atom'\nimport { modalOnSaveChangeThemeState } from '../ModalOnSaveChanges/atom'\n\ntype ActionsButtonsProps = {\n firstRecording: boolean\n}\n\nexport const ActionsButtons: React.FC = ({ firstRecording }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const setOpenDiscardChanges = useSetRecoilState(modalOnDiscardChangesThemeState)\n const setOpenSaveChanges = useSetRecoilState(modalOnSaveChangeThemeState)\n\n const handleSubmit = (): void => {\n setOpenSaveChanges(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardChanges(true)\n }\n\n return (\n <>\n \n \n \n {firstRecording\n ? \n {isMobile \n ? 'Configuração inicial'\n : 'Tema inicial, unidade ainda não possui tema gravado'\n }\n \n : \n }\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n input: {\n outlineWidth: 0,\n marginLeft: 12,\n marginBottom: 12\n },\n inputColor: {\n marginLeft: -56\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ThemeColors, ThemeModel } from '@/domain/models'\nimport { TextInput } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { themeState } from '@/presentation/pages/Theme/components'\nimport { styles } from './styles'\n\ntype ColorPickerProps = {\n name: keyof ThemeColors\n label: string\n}\n\nexport const ColorPicker: React.FC = ({ name, label }) => {\n const { isMobile } = useMediaQueries()\n const [themeClient, setThemeClient] = useRecoilState(themeState)\n\n const inputStyle = {\n ...styles.input,\n ...(isMobile\n ? { width: '100%' }\n : { flex: 1 }\n )\n }\n\n const handleSelect = (param: keyof ThemeColors, color: string): void => {\n setThemeClient(currentState => ({\n ...currentState,\n theme: ({ ...currentState.theme, [param]: color }) as ThemeModel\n }))\n }\n\n return (\n \n handleSelect(name, event.target.value)}\n />\n }\n />\n )\n}\n","import React, { useState } from 'react'\nimport { Image, StyleSheet } from 'react-native'\nimport { useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport * as ImagePicker from 'expo-image-picker'\nimport { environment } from '@/main/config/env'\nimport { ThemeModel } from '@/domain/models'\nimport { HStack, Text, VStack } from '@/presentation/components'\nimport { useImage, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedBackgroundState, themeState } from '@/presentation/pages/Theme/components'\n\ntype LoginBackgroundSelectorProps = {\n fileName: string\n}\n\nexport const LoginBackgroundSelector: React.FC = ({ fileName }) => {\n const theme = useTheme()\n const { base64toFile } = useImage()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const setTheme = useSetRecoilState(themeState)\n const setSelectedBackground = useSetRecoilState(selectedBackgroundState)\n const [background, setBackground] = useState()\n\n const themeClient = getThemeClient()\n\n const backgroundImage = environment === 'production' && fileName\n ? { uri: fileName }\n : require('../../../../../../assets/hexagon-bg.svg')\n\n const handlePickImage = async (): Promise => {\n const result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1\n })\n\n if (!result.canceled) {\n const base64Background = result.assets?.[0].uri?.split(',')[1]\n const file = base64toFile(base64Background, `Background_${new Date().getMilliseconds()}.jpeg`)\n setSelectedBackground(file)\n setTheme(currentState => ({ ...currentState, theme: ({ ...currentState.theme, bgLogin: file.name }) as ThemeModel }))\n setBackground(result.assets?.[0].uri)\n }\n }\n\n return (\n \n \n \n Imagem de Fundo do Login\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n backgroundImage: {\n width: '100%',\n maxWidth: 720,\n borderRadius: 4\n }\n})\n","import React, { useState } from 'react'\nimport { Image, StyleSheet, TouchableOpacity } from 'react-native'\nimport { useSetRecoilState } from 'recoil'\nimport * as ImagePicker from 'expo-image-picker'\nimport { environment } from '@/main/config/env'\nimport { ThemeModel } from '@/domain/models'\nimport { useImage, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { Text, VStack } from '@/presentation/components'\n\ntype LogoSelectorProps = {\n fileName: string\n}\n\nexport const LogoSelector: React.FC = ({ fileName }) => {\n const theme = useTheme()\n const { base64toFile } = useImage()\n const { getThemeClient } = useThemeClient()\n const setTheme = useSetRecoilState(themeState)\n const setSelectedLogo = useSetRecoilState(selectedLogoState)\n const [logo, setLogo] = useState()\n\n const themeClient = getThemeClient()\n const logoImage = environment === 'production' && fileName\n ? { uri: fileName }\n : require('../../../../../../assets/logo-white.svg')\n\n const handlePickImage = async (): Promise => {\n const result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1\n })\n\n if (!result.canceled) {\n const base64Logo = result.assets?.[0].uri?.replace('data:image/png;base64,', '')\n const file = base64toFile(base64Logo, `Logo_${new Date().getMilliseconds()}.png`)\n setSelectedLogo(file)\n setTheme(currentState => ({ ...currentState, theme: ({ ...currentState.theme, imageLogo: file.name }) as ThemeModel }))\n setLogo(result.assets?.[0].uri)\n }\n }\n\n return (\n \n \n \n Logo da empresa\n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n imageLogo: {\n width: 80,\n height: 40,\n borderWidth: 1,\n borderStyle: 'dashed'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { SaveTheme, UploadFile } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnSaveChangeThemeState } from './atom'\nimport { styles } from './styles'\nimport { currentUnitSettingsState } from '@/presentation/pages/Settings/components'\n\ntype ModalOnSaveChangesProps = {\n saveTheme: SaveTheme\n uploadFile: UploadFile\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveTheme, uploadFile }) => {\n const theme = useTheme()\n const notify = useNotify()\n const [themeClient] = useRecoilState(themeState)\n const selectedLogo = useRecoilValue(selectedLogoState)\n const selectedBackgroundLogo = useRecoilValue(selectedBackgroundState)\n const { setThemeClient } = useThemeClient()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isOpenSaveChanges, setOpenSaveChanges] = useRecoilState(modalOnSaveChangeThemeState)\n const resetSelectedLogo = useResetRecoilState(selectedLogoState)\n const resetSelectedBackgroundLogo = useResetRecoilState(selectedBackgroundState)\n const currentUnit = useRecoilValue(currentUnitSettingsState)\n const handleError = useErrorHandler(() => {\n setLoading(false)\n handleClose()\n })\n\n const handleSaveChanges = async (): Promise => {\n setLoading(true)\n\n try {\n selectedLogo && await uploadFile.upload({ file: selectedLogo, scope: 'logo' })\n selectedBackgroundLogo && await uploadFile.upload({ file: selectedBackgroundLogo, scope: 'loginBackground' })\n\n const themeResult = await saveTheme.save(themeClient.theme, currentUnit)\n notify.show(themeResult)\n\n setThemeClient(themeClient.theme)\n resetSelectedLogo()\n resetSelectedBackgroundLogo()\n setLoading(false)\n handleClose()\n } catch (error) {\n handleError(error)\n }\n }\n\n const handleClose = useCallback(() => setOpenSaveChanges(false), [])\n\n return (\n \n \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useTheme } from '@/presentation/hooks'\nimport { initialThemeState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnDiscardChangesThemeState } from './atom'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const setThemeClient = useSetRecoilState(themeState)\n const initialTheme = useRecoilValue(initialThemeState)\n const [isOpenDiscardChanges, setOpenDiscardChanges] = useRecoilState(modalOnDiscardChangesThemeState)\n\n const handleDiscardChanges = (): void => {\n setThemeClient(currentState => ({ ...currentState, theme: initialTheme }))\n setOpenDiscardChanges(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpenDiscardChanges(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ThemeModel } from '@/domain/models'\nimport { localStorageState } from '@/presentation/components'\nimport { initialThemeState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\n\ntype ThemeClient = {\n getThemeClient: () => ThemeModel\n setThemeClient: (theme: ThemeModel) => void\n hasChanged: () => boolean\n}\n\nexport const KEY_THEME_STORAGE = 'portalTheme'\n\nexport const useThemeClient = (): ThemeClient => {\n const [themeClient, setTheme] = useRecoilState(themeState)\n const [initialTheme, setInitialTheme] = useRecoilState(initialThemeState)\n const selectedLogo = useRecoilValue(selectedLogoState)\n const selectedBackground = useRecoilValue(selectedBackgroundState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n\n const setThemeClient = useCallback((theme: ThemeModel): void => {\n setInitialTheme(theme)\n setTheme(currentState => ({ ...currentState, theme }))\n\n const themeColorClient = document?.querySelector('meta[name=\"theme-color\"]')\n if (themeColorClient) {\n themeColorClient.setAttribute('content', theme.mainColor)\n }\n\n localStorageAdapter.set(KEY_THEME_STORAGE, theme)\n }, [])\n\n const getThemeClient = useCallback((): ThemeModel => {\n return themeClient.theme\n }, [themeClient.theme])\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(themeClient.theme) !== JSON.stringify(initialTheme)\n }, [themeClient.theme, initialTheme, selectedLogo, selectedBackground])\n\n return {\n getThemeClient,\n setThemeClient,\n hasChanged\n }\n}\n","import { useCallback } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { SnackBarProps, snackBarProviderState } from '@/presentation/components'\n\ntype NotifyProps = {\n show: (message: string, options?: NotifyParams) => void\n success: (message: string, options?: NotifyParams) => void\n info: (message: string, options?: NotifyParams) => void\n error: (message: string, options?: NotifyParams) => void\n dimiss: (messageId: string) => void\n}\n\ntype NotifyParams = {\n variant?: 'success' | 'error' | 'info'\n duration?: number\n delay?: number\n}\n\nfunction useNotify (): NotifyProps {\n const [messages, setMessages] = useRecoilState(snackBarProviderState)\n\n const show = useCallback((message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'success',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }, [])\n\n const success = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'success',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const info = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'info',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const error = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'error',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const dimiss = useCallback((messageId: string): void => {\n setMessages(messages.filter(message => message.id !== messageId))\n }, [])\n\n return {\n show,\n success,\n info,\n error,\n dimiss\n }\n}\n\nexport default useNotify\n","import { atom } from 'recoil'\nimport { AreaInterest, EntidadeService, ProspectConfigsModel, Unidade } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'prospectSettingsLoadingState',\n default: true\n})\n\nexport const initialProspectConfigsState = atom({\n key: 'initialProspectConfigsState',\n default: {} as ProspectConfigsModel\n})\n\nexport const prospectConfigsState = atom({\n key: 'prospectConfigsState',\n default: {\n ativo: false,\n descricao: '',\n moduloLiberado: false,\n listaInteresse: [] as EntidadeService[]\n }\n})\n\nexport const prospectInterestAreaState = atom({\n key: 'prospectInterestAreaState',\n default: [] as AreaInterest[]\n})\n\nexport const prospectUnitsState = atom({\n key: 'prospectUnitsState',\n default: [] as Unidade[]\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardConfigState, isOpenSaveConfigState } from '@/presentation/pages/ProspectSettings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveConfigState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardConfigState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isOpenSaveConfigState = atom({\n key: 'isOpenSaveProspectConfigState',\n default: false\n})\n\nexport const isLoadingSaveConfigState = atom({\n key: 'isLoadingSaveProspectConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useProspectSettings, useTheme } from '@/presentation/hooks'\nimport { prospectInterestAreaState, prospectConfigsState } from '@/presentation/pages/ProspectSettings/components'\nimport { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n saveProspectConfigs: SaveProspectConfigs\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveProspectConfigs }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useProspectSettings()\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const areaInterests = useRecoilValue(prospectInterestAreaState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveConfigState)\n const handlerError = useErrorHandler()\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n const newProspectConfigs: SaveProspectConfigsParams = {\n ...prospectConfigs,\n areaInteresse: areaInterests\n }\n\n saveProspectConfigs\n .save(newProspectConfigs)\n .then(() => {\n notify.show('As configurações foram gravadas com sucesso')\n\n startConfig(newProspectConfigs)\n handleClose()\n })\n .catch(error => {\n handlerError(error)\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [prospectConfigs, areaInterests])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useProspectSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardConfigState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardConfigState)\n const { discardChanges } = useProspectSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardConfigState = atom({\n key: 'isOpenDiscardProspectConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n content: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { AreaInterest } from '@/domain/models'\nimport { Box, Button, Text, ModalBase, TextInput, HStack, Stack, Select, MessageBlock } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { addConfigUnitState, isDuplicatedOptionSate, isOpenAddConfigUnitState, isOpenSelectInterestState, isOpenSelectUnitState, prospectConfigsState, prospectInterestAreaState, prospectUnitsState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalAddConfigUnit: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const [isOpen, setOpen] = useRecoilState(isOpenAddConfigUnitState)\n const [areaInterest, setAreaInterest] = useRecoilState(addConfigUnitState)\n const [isDuplicated, setIsDuplicated] = useRecoilState(isDuplicatedOptionSate)\n const units = useRecoilValue(prospectUnitsState)\n const [isOpenSelectUnit, setOpenSelectUnit] = useRecoilState(isOpenSelectUnitState)\n const [isOpenSelectInterest, setOpenSelectInterest] = useRecoilState(isOpenSelectInterestState)\n const areaInterestsList = useRecoilValue(prospectInterestAreaState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const setProspectInterestAreaList = useSetRecoilState(prospectInterestAreaState)\n const reset = useResetRecoilState(addConfigUnitState)\n\n const handleSave = (): void => {\n if (existUnit()) {\n setIsDuplicated(true)\n } else {\n const newInterestArea: AreaInterest = {\n descricao: areaInterest?.descricao,\n email: areaInterest?.email,\n interesse: areaInterest?.interesse,\n unidade: areaInterest?.unidade\n }\n\n setProspectInterestAreaList((currentInterestAreaList) => ([...currentInterestAreaList, newInterestArea]))\n setOpen(false)\n reset()\n }\n }\n\n const existUnit = (): boolean => {\n return areaInterestsList.some(\n (interest) => interest.unidade === areaInterest.unidade && interest.interesse.descreve === areaInterest.interesse.descreve\n )\n }\n\n const handleInputChange = (param: keyof AreaInterest, value: number | string): void => {\n setAreaInterest(currentState => ({ ...currentState, [param]: value }))\n }\n\n const validValues = (): boolean => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n const isValidEmail = emailRegex.test(areaInterest.email)\n return !!(areaInterest.descricao && areaInterest.unidade && areaInterest.interesse?.codInterno !== 0 && isValidEmail && !isDuplicated)\n }\n\n const handleClose = (): void => {\n setOpen(false)\n reset()\n }\n\n return (\n \n \n Adicionar nova opção para cliente\n\n {isDuplicated &&\n \n }\n\n \n setOpenSelectUnit(true)}\n />\n handleInputChange('descricao', text)}\n maxLength={50}\n />\n \n \n setOpenSelectInterest(true)}\n style={{ minWidth: '100%' }}\n />\n \n handleInputChange('email', text)}\n textContentType='emailAddress'\n />\n\n \n \n \n \n \n setOpenSelectUnit(false)}\n items={units.map(unit => ({\n id: unit.codigoUnidade,\n descricao: unit.codigoUnidade.toString(),\n data: unit,\n isSelected: unit.codigoUnidade === areaInterest.unidade\n }))}\n onSelect={(unitCode, _) => {\n setAreaInterest(currentState => ({ ...currentState, unidade: unitCode }))\n isDuplicated && setIsDuplicated(false)\n }}\n />\n setOpenSelectInterest(false)}\n items={prospectConfigs.listaInteresse?.map(interest => ({\n id: interest.codInterno,\n descricao: interest.descreve,\n data: interest,\n isSelected: interest.codInterno === areaInterest.interesse?.codInterno\n }))}\n onSelect={(_, data) => {\n setAreaInterest(currentState => ({ ...currentState, interesse: data }))\n isDuplicated && setIsDuplicated(false)\n }}\n />\n \n )\n}\n","import { atom } from 'recoil'\nimport { AreaInterest, EntidadeService } from '@/domain/models'\n\nexport const isOpenAddConfigUnitState = atom({\n key: 'isOpenAddConfigUnitState',\n default: false\n})\n\nexport const addConfigUnitState = atom({\n key: 'addConfigUnitState',\n default: {\n descricao: '',\n email: '',\n interesse: null as unknown as EntidadeService,\n unidade: 0\n }\n})\n\nexport const isDuplicatedOptionSate = atom({\n key: 'isDuplicatedProspectOptionState',\n default: false\n})\n\nexport const isOpenSelectInterestState = atom({\n key: 'isOpenProspectSelectInterestState',\n default: false\n})\n\nexport const isOpenSelectUnitState = atom({\n key: 'isOpenProspectSelectUnitState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { deleteProspectOptionState, isOpenDeleteProspectOptionState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalDeleteOption: React.FC = () => {\n const theme = useTheme()\n const [isOpen, setOpen] = useRecoilState(isOpenDeleteProspectOptionState)\n const deleteOption = useRecoilValue(deleteProspectOptionState)\n const setAreaInterests = useSetRecoilState(prospectInterestAreaState)\n const resetDeleteOption = useResetRecoilState(deleteProspectOptionState)\n\n const handleDeleteOption = (): void => {\n setAreaInterests((prevInterests) => {\n const updatedInterests = prevInterests.filter(\n (interest) => (interest.unidade !== deleteOption.unidade) || (interest.interesse.descreve !== deleteOption.interesse)\n )\n return updatedInterests\n })\n resetDeleteOption()\n setOpen(false)\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente remover a opção de interesse \"{deleteOption.interesse.replace(/\\s+(?!\\b)/g, '')}\" da unidade {deleteOption.unidade}?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDeleteProspectOptionState = atom({\n key: 'isOpenDeleteProspectOptionState',\n default: false\n})\n\nexport type deleteProspectOptionProps = {\n unidade: number\n interesse: string\n}\n\nexport const deleteProspectOptionState = atom({\n key: 'deleteProspectOptionState',\n default: {\n unidade: 0,\n interesse: ''\n }\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { DataTable } from '@/presentation/components'\nimport { deleteProspectOptionState, isOpenDeleteProspectOptionState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\nexport const TableAreaOfInterest: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const areaInterests = useRecoilValue(prospectInterestAreaState)\n const setDeleteOptionOpen = useSetRecoilState(isOpenDeleteProspectOptionState)\n const setDeleteOption = useSetRecoilState(deleteProspectOptionState)\n\n const handleDeleteOption = (unit: number, interestArea: string): void => {\n setDeleteOption({\n interesse: interestArea,\n unidade: unit\n })\n setDeleteOptionOpen(true)\n }\n\n return (\n \n \n {!isMobile && Opção}\n Unidade\n Interesse\n {!isMobile && Email}\n \n\n {areaInterests.map((area, index) => (\n \n {!isMobile && {area.descricao}}\n {area.unidade}\n {area.interesse.descreve}\n {!isMobile && {area.email}}\n handleDeleteOption(area.unidade, area.interesse.descreve)}\n style={{ maxWidth: 'fit-content', padding: 4 }}\n >\n \n \n \n ))}\n \n )\n}\n","import { useCallback } from 'react'\nimport { ProspectConfigsModel } from '@/domain/models'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { initialProspectConfigsState, prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\ntype ProspectSettingsProps = {\n startConfig: (config: ProspectConfigsModel) => void\n discardChanges: () => void\n hasChanged: () => boolean\n}\n\nexport const useProspectSettings = (): ProspectSettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialProspectConfigsState)\n const [prospectConfigs, setProspectConfigs] = useRecoilState(prospectConfigsState)\n const areaInterest = useRecoilValue(prospectInterestAreaState)\n const setProspectInterestArea = useSetRecoilState(prospectInterestAreaState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (intialProspectConfigs: ProspectConfigsModel): void => {\n const { areaInteresse, ...prospectConfigs } = intialProspectConfigs\n\n prospectConfigs.ativo = areaInteresse.length > 0\n setInitialConfigs({ ...prospectConfigs, areaInteresse })\n setProspectConfigs(prospectConfigs)\n setProspectInterestArea(areaInteresse)\n }\n\n const hasChanged = useCallback((): boolean => {\n const configs: ProspectConfigsModel = {\n ...prospectConfigs,\n areaInteresse: areaInterest\n }\n return JSON.stringify(initialConfigs) !== JSON.stringify(configs)\n }, [prospectConfigs, areaInterest])\n\n return {\n startConfig,\n discardChanges,\n hasChanged\n }\n}\n","import { atom } from 'recoil'\nimport { EventsSettingsModel, GenericSigmaDeskConnectionModel } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'eventsSettingsLoadingState',\n default: true\n})\n\nexport const initialEventsSettingsState = atom({\n key: 'initialEventsSettingsState',\n default: {} as EventsSettingsModel\n})\n\nexport const eventsSettingsState = atom({\n key: 'eventsSettingsState',\n default: {} as EventsSettingsModel\n})\n\nexport const sigmaDeskConnectionsState = atom({\n key: 'sigmaDeskConnectionsState',\n default: [] as unknown as GenericSigmaDeskConnectionModel[]\n})\n\nexport const isOpenConnectionMenuState = atom({\n key: 'isOpenConnectionMenuState',\n default: false\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardSettingsState, isOpenSaveSettingsState } from '@/presentation/pages/EventsSettings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveSettingsState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardSettingsState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ShowEvents } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useEventsSettings, useTheme } from '@/presentation/hooks'\nimport { eventsSettingsState, isLoadingSaveSettingsState, isOpenSaveSettingsState } from '@/presentation/pages/EventsSettings/components'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n showEvents: ShowEvents\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ showEvents }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useEventsSettings()\n const eventsSettings = useRecoilValue(eventsSettingsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveSettingsState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveSettingsState)\n const handlerError = useErrorHandler()\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n showEvents\n .show(eventsSettings.listaExibidos)\n .then(() => {\n notify.show('As configurações foram gravadas com sucesso')\n\n startConfig(eventsSettings)\n handleClose()\n })\n .catch(error => {\n handlerError(error)\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [eventsSettings])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenSaveSettingsState = atom({\n key: 'isOpenSaveEventsSettingsState',\n default: false\n})\n\nexport const isLoadingSaveSettingsState = atom({\n key: 'isLoadingSaveEventsSettingsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useEventsSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardSettingsState } from '@/presentation/pages/EventsSettings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardSettingsState)\n const { discardChanges } = useEventsSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardSettingsState = atom({\n key: 'isOpenDiscardEventsSettingsState',\n default: false\n})\n","import { useCallback } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { EventsSettingsModel } from '@/domain/models'\nimport { initialEventsSettingsState, eventsSettingsState } from '@/presentation/pages/EventsSettings/components'\n\ntype EventsSettingsProps = {\n startConfig: (config: EventsSettingsModel) => void\n discardChanges: () => void\n hasChanged: () => boolean\n}\n\nexport const useEventsSettings = (): EventsSettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialEventsSettingsState)\n const [EventsSettings, setEventsSettings] = useRecoilState(eventsSettingsState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (initialEventsSettings: EventsSettingsModel): void => {\n const eventosExibidos = initialEventsSettings.listaTipos.filter((evento) => {\n const hasMatchingCode = initialEventsSettings.listaExibidos.some((oculto) => oculto.codigo === evento.codigo)\n return !hasMatchingCode\n })\n\n const treatedBody: EventsSettingsModel = {\n listaExibidos: initialEventsSettings.listaExibidos,\n listaTipos: eventosExibidos\n }\n\n setInitialConfigs(treatedBody)\n setEventsSettings(treatedBody)\n }\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(initialConfigs) !== JSON.stringify(EventsSettings)\n }, [EventsSettings])\n\n return {\n startConfig,\n discardChanges,\n hasChanged\n }\n}\n","import { ClientModel } from '@/domain/models'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\nimport { KEY_ACCESS_TOKEN } from '@/presentation/hooks'\nimport { atom } from 'recoil'\n\nexport const authenticationState = atom({\n key: 'autenticationState',\n default: {\n client: null as unknown as ClientModel,\n registerLogin: false,\n accessToken: makeLocalStorageAdapter().get(KEY_ACCESS_TOKEN)\n }\n})\n","import { atom } from 'recoil'\nimport { SnackBarProps } from '@/presentation/components'\n\nexport const snackBarProviderState = atom({\n key: 'snackBarProvider',\n default: []\n})\n\nexport const errorAuthState = atom({\n key: 'errorAuthState',\n default: ''\n})\n","import { atom } from 'recoil'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\n\nexport const localStorageState = atom({\n key: 'localStorage',\n default: makeLocalStorageAdapter()\n})\n","import { atom } from 'recoil'\nimport { makeUniversalCookieAdapter } from '@/main/factories/cache'\n\nexport const cookieState = atom({\n key: 'cookie',\n default: makeUniversalCookieAdapter()\n})\n","import { UniversalCookieAdapter } from '@/infra/cache'\n\nexport const makeUniversalCookieAdapter = (): UniversalCookieAdapter => new UniversalCookieAdapter()\n","import { atom } from 'recoil'\nimport { makeJwtAdapterFactory } from '@/main/adapters'\n\nexport const jwtAdapterAtom = atom({\n key: 'jwtAdapter',\n default: makeJwtAdapterFactory()\n})\n","import { Decoder } from '@/data/protocols'\nimport { JwtAdapter } from '@/infra/adapters'\n\nexport const makeJwtAdapterFactory = (): Decoder => new JwtAdapter()\n","import { atom } from 'recoil'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const dateAdapterAtom = atom({\n key: 'dateAdapterState',\n default: makeDateAdapterFactory()\n})\n","import React from 'react'\nimport { HStack } from '@react-native-material/core'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype ActionsButtonsProps = {\n children: React.ReactNode\n}\n\nexport const ActionsButtons: React.FC = ({ children }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { ImageBackground, StyleSheet } from 'react-native'\nimport { environment } from '@/main/config/env'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\n\nexport const BackgroundTheme: React.FC = () => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const [backgroundEmpresa, setBackgroundEmpresa] = useState('')\n\n const themeClient = getThemeClient()\n const backgroundDefault = environment === 'production' && backgroundEmpresa\n ? { uri: backgroundEmpresa }\n : require('../../../../assets/hexagon-bg.svg')\n\n useEffect(() => {\n themeClient.bgLogin && environment !== 'development' &&\n getImage(themeClient.bgLogin, 'login')\n .then(background => { setBackgroundEmpresa(background) })\n .catch(console.error)\n }, [themeClient.bgLogin])\n\n return (\n \n )\n}\n\nconst styles = StyleSheet.create({\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n borderRadius: 50,\n borderWidth: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n width: 'fit-content'\n },\n title: {\n lineHeight: 13\n }\n})\n","import React from 'react'\nimport { ViewStyle, TextStyle } from 'react-native'\nimport { Chip as ChipPaper, Text } from 'react-native-paper'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype ChipProps = {\n text: string\n color?: string\n variant?: 'filled' | 'outlined'\n containerStyle?: ViewStyle\n textStyle?: TextStyle\n onClick?: () => void\n}\n\nexport const Chip: React.FC = ({\n text,\n color,\n containerStyle,\n textStyle,\n onClick,\n variant = 'filled'\n}: ChipProps) => {\n const theme = useTheme()\n\n const containerStyles = {\n filled: {\n ...styles.container,\n backgroundColor: color ?? theme.colors.primary,\n color: 'transparent',\n borderColor: 'transparent',\n ...containerStyle\n },\n outlined: {\n ...styles.container,\n backgroundColor: 'transparent',\n color: color ?? theme.colors.error,\n borderColor: color ?? theme.colors.error,\n ...containerStyle\n }\n }[variant]\n\n const textStyles = {\n ...styles.title,\n color: variant === 'filled' ? theme.colors.white : color ?? theme.colors.error,\n ...textStyle\n }\n\n return (\n \n \n {text}\n \n \n )\n}\n","import React from 'react'\nimport { Text } from '@react-native-material/core'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { HStack } from '@/presentation/components'\n\ntype ChipFilterProps = {\n title: string\n subtitle: string\n onPress: () => void\n}\n\nexport const ChipFilter: React.FC = ({\n title,\n subtitle,\n onPress\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n {title}\n \n \n \n \n {subtitle}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardBase: {\n display: 'flex',\n borderRadius: 4,\n flex: 1\n },\n cardContent: {\n display: 'flex',\n gap: 8\n }\n})\n","import React from 'react'\nimport { Card } from 'react-native-paper'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype CardBaseProps = {\n children: JSX.Element | JSX.Element[]\n key?: number | string\n maxWidth?: number | string\n minWidth?: number | string\n}\n\nexport const CardBase: React.FC = ({ children, key, maxWidth, minWidth }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n {children}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Box, NoResultMessage, Loading } from '@/presentation/components'\n\ntype CardListProps = {\n children: React.ReactNode\n isLoading: boolean\n isEmpty: boolean\n textLoading: string\n textEmpty?: string\n}\n\nexport const CardList: React.FC = ({\n children,\n isLoading,\n isEmpty,\n textEmpty,\n textLoading\n}) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {isLoading\n ? \n : isEmpty\n ? \n : children\n }\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n flexGrow: 1,\n gap: 16\n },\n containerMobile: {\n flexWrap: 'nowrap',\n flexGrow: 1,\n gap: 16\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Switch, Card, Text, Chip, HStack } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype CardSWitchProps = {\n text: string\n value: boolean\n handleSwitch: () => void\n children?: JSX.Element[] | JSX.Element | boolean\n readonly?: boolean\n boletoInside?: boolean\n showIfValueFalsy?: boolean\n}\n\nexport const CardSwitch: React.FC = ({\n text,\n children,\n value,\n handleSwitch,\n readonly,\n boletoInside,\n showIfValueFalsy = false\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeCliente = getThemeClient()\n const showChildren = showIfValueFalsy ? !value : !!value\n\n return (\n \n \n \n \n {text}\n {boletoInside && }\n \n {!readonly && }\n \n {children && showChildren &&\n \n {children}\n \n }\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n marginVertical: 8,\n marginHorizontal: 16,\n borderRadius: 4\n },\n cardContent: {\n justifyContent: 'space-between',\n flex: 1\n },\n cardContentHeader: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1,\n paddingLeft: 0,\n paddingRight: 0\n },\n cardChildren: {\n marginBottom: 8,\n marginTop: 16\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n width: '100%',\n marginTop: 8\n }\n})\n","import React, { useMemo } from 'react'\nimport { DatePickerInput } from 'react-native-paper-dates'\nimport { DateAdapter } from '@/data/protocols'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype DatePickerProps = {\n dateAdapter: DateAdapter\n label: string\n value: Date | undefined\n onChange: (date: Date | undefined) => void\n disabled?: boolean\n initYear?: number\n finalYear?: number\n}\n\nexport const DatePicker: React.FC = ({\n label,\n value,\n onChange,\n disabled,\n initYear,\n finalYear,\n dateAdapter\n}) => {\n const theme = useTheme()\n\n const INITIAL_YEAR = useMemo(() => initYear ?? dateAdapter.today().getFullYear() - 5, [])\n const FINAL_YEAR = useMemo(() => finalYear ?? dateAdapter.today().getFullYear() + 12, [])\n\n const inputStyle = {\n ...styles.container,\n backgroundColor: theme.colors.backgroundInput,\n color: theme.colors.greyDark\n }\n\n return (\n \n )\n}\n","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DrawerContentScrollView, DrawerItemList } from '@react-navigation/drawer'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, SocialMidias, socialMediaState } from '@/presentation/components'\n\nexport function CustomDrawer (props: any): JSX.Element {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const socialMidias = useRecoilValue(socialMediaState)\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { environment } from '@/main/config/env'\n\nexport enum NavigationRoute {\n Home = 'home',\n Login = 'login',\n Financial = 'financeiro',\n ServiceOrders = 'ordens-servico',\n SAC = 'sac',\n Invoices = 'notas-fiscais',\n DigitalAccepts = 'aceites-digitais',\n CreditCard = 'cartao',\n TravelAlert = 'aviso-viagem',\n PhoneUtils = 'telefone-uteis',\n DocumentsUtils = 'documentos-uteis',\n Monitoring = 'monitoramento',\n Track = 'rastreamento',\n Contract = 'contrato',\n OsDetail = 'os',\n StatementOfDebts = 'declaracao-debitos',\n\n Theme = 'theme',\n Configs = 'configs',\n SocialMedia = 'redes-socias',\n ProspectSettings = 'prospect-settings',\n EventsSettings = 'events-settings',\n ChangePassword = 'alterar-senha',\n RecoveryPassword = 'recuperar-senha'\n}\n\nconst handleScreenPath = (screen: string): string => {\n const basePath = environment === 'development' ? screen : `portalservice/${screen}`\n return basePath\n}\n\nexport const screensClientNavigator = {\n [NavigationRoute.Home]: handleScreenPath(NavigationRoute.Home.toString()),\n [NavigationRoute.Financial]: handleScreenPath(NavigationRoute.Financial.toString()),\n [NavigationRoute.Invoices]: handleScreenPath(NavigationRoute.Invoices.toString()),\n [NavigationRoute.SAC]: handleScreenPath(NavigationRoute.SAC.toString()),\n [NavigationRoute.DigitalAccepts]: handleScreenPath(NavigationRoute.DigitalAccepts.toString()),\n [NavigationRoute.ServiceOrders]: handleScreenPath(NavigationRoute.ServiceOrders.toString()),\n [NavigationRoute.CreditCard]: handleScreenPath(NavigationRoute.CreditCard.toString()),\n [NavigationRoute.TravelAlert]: handleScreenPath(NavigationRoute.TravelAlert.toString()),\n [NavigationRoute.PhoneUtils]: handleScreenPath(NavigationRoute.PhoneUtils.toString()),\n [NavigationRoute.DocumentsUtils]: handleScreenPath(NavigationRoute.DocumentsUtils.toString()),\n [NavigationRoute.Monitoring]: handleScreenPath(NavigationRoute.Monitoring.toString()),\n [NavigationRoute.Track]: handleScreenPath(NavigationRoute.Track.toString()),\n [NavigationRoute.OsDetail]: {\n path: `${handleScreenPath(NavigationRoute.OsDetail.toString())}/:param`,\n parse: {\n param: (param: string) => param\n }\n },\n [NavigationRoute.Contract]: handleScreenPath(NavigationRoute.Contract.toString()),\n [NavigationRoute.StatementOfDebts]: handleScreenPath(NavigationRoute.StatementOfDebts.toString()),\n [NavigationRoute.ChangePassword]: handleScreenPath(NavigationRoute.ChangePassword.toString()),\n [NavigationRoute.RecoveryPassword]: {\n path: `${handleScreenPath(NavigationRoute.RecoveryPassword.toString())}/:idRecuperacao`,\n parse: {\n param: (param: string) => param\n }\n }\n}\n\nexport const screensAdminNavigator = {\n [NavigationRoute.Login]: handleScreenPath(NavigationRoute.Login.toString()),\n [NavigationRoute.Theme]: handleScreenPath(NavigationRoute.Theme.toString()),\n [NavigationRoute.Configs]: handleScreenPath(NavigationRoute.Configs.toString()),\n [NavigationRoute.SocialMedia]: handleScreenPath(NavigationRoute.SocialMedia.toString()),\n [NavigationRoute.ProspectSettings]: handleScreenPath(NavigationRoute.ProspectSettings.toString()),\n [NavigationRoute.EventsSettings]: handleScreenPath(NavigationRoute.EventsSettings.toString())\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n gap: 16\n },\n footer: {\n display: 'flex',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n }\n})\n","import React, { useCallback } from 'react'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais, SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Box, Button, TextInput, Footer, socialMediaState } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype RedesSociasProps = {\n saveRedesSociais: SaveRedesSociais\n getRedesSociais: GetRedesSociais\n}\n\nexport const RedesSociais: React.FC = ({ saveRedesSociais, getRedesSociais }) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(socialMediaState)\n\n useFocusEffect(\n useCallback(() => {\n void getRedesSociais.getRedesSociais()\n .then((res) => setState(currentState => ({ ...currentState, ...res })))\n .catch(handleError)\n }, [])\n )\n\n const handleChange = (name: keyof RedesSociaisModel, value: string): void => {\n setState((prevState) => ({ ...prevState, [name]: value }))\n }\n\n const handleSave = (): void => {\n const saveParams: SaveRedesSociaisParams = {\n facebook: state.facebook,\n instagram: state.instagram,\n linkedin: state.linkedin,\n phone: state.phone,\n telegram: state.telegram,\n tiktok: state.tiktok,\n whatsapp: state.whatsapp,\n youtube: state.youtube\n }\n\n void saveRedesSociais.save(saveParams)\n .then(() => notify.show('Sucesso! Os links foram salvos!'))\n .catch(handleError)\n }\n\n return (\n <>\n \n handleChange('phone', text)}\n leading={(props) => }\n label='Número do Telefone'\n />\n handleChange('whatsapp', text)}\n leading={(props) => }\n label='Whatsapp'\n />\n handleChange('facebook', text)}\n leading={(props) => }\n label='Link do Facebook'\n />\n handleChange('linkedin', text)}\n leading={(props) => }\n label='Link do Linkedin'\n />\n handleChange('instagram', text)}\n leading={(props) => }\n label='Link do Instagram'\n />\n handleChange('tiktok', text)}\n leading={(props) => }\n label='Link do Tiktok'\n />\n handleChange('telegram', text)}\n leading={(props) => }\n label='Link do Telegram'\n />\n \n
\n \n
\n \n )\n}\n","import React from 'react'\nimport { RedesSociais } from '@/presentation/pages/RedesSociais'\nimport { makeGetRedesSociais, makeSaveRedesSociais } from '@/main/factories/usecases'\n\nexport const makeRedesSociaisFactory = (): JSX.Element => {\n return \n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n flex: 1\n },\n\n cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n },\n\n headerText: {\n padding: 12,\n fontWeight: '500',\n textTransform: 'uppercase'\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { GetUnitConfig, TestEmail, SaveUnitConfig, GetUnitConfigParams, GetUnits } from '@/domain/usecases'\nimport { Box, HStack, Loading, OutdatedError, Text, UnitsSelector } from '@/presentation/components'\nimport { useSettings, useTheme, useThemeClient, useMediaQueries, useErrorHandler } from '@/presentation/hooks'\nimport { InvoicesSettings, GeneralSettings, FinancialSettings, ServiceOrderSettings, MenuAccessPermissions, ModalOnSaveOrDiscard, ModalOnDiscardChanges, ModalOnSaveChanges, isLoadingState, unitsSettingsState, currentUnitSettingsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\ntype SettingsProps = {\n getUnitConfigs: GetUnitConfig\n saveUnitConfig: SaveUnitConfig\n testEmail: TestEmail\n getUnits: GetUnits\n}\n\nconst Tab = createMaterialTopTabNavigator()\n\nexport const Settings: React.FC = ({\n getUnitConfigs,\n saveUnitConfig,\n testEmail,\n getUnits\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const { startConfig } = useSettings()\n const [units, setUnits] = useRecoilState(unitsSettingsState)\n const currentUnit = useRecoilValue(currentUnitSettingsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getUnits\n .getAll()\n .then(async units => {\n const getConfigParams: GetUnitConfigParams = {\n codUnidade: currentUnit\n }\n\n const unitConfig = await getUnitConfigs.getAll(getConfigParams)\n startConfig(unitConfig)\n\n setUnits(units)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [currentUnit])\n )\n\n useEffect(() => {\n if (currentUnit) {\n void (async () => {\n const getConfigParams: GetUnitConfigParams = {\n codUnidade: currentUnit\n }\n\n const unitConfig = await getUnitConfigs.getAll(getConfigParams)\n startConfig(unitConfig)\n })()\n }\n }, [currentUnit])\n\n const financialSettings = (): JSX.Element => \n const generalSettings = (): JSX.Element => \n const invoicesSettings = (): JSX.Element => \n const serviceOrderSettings = (): JSX.Element => \n const menuAccessPermissions = (): JSX.Element => \n\n return (\n \n \n \n \n \n Configurações da Unidade\n \n \n \n \n {isLoading\n ? \n : \n \n \n \n \n \n \n }\n \n\n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Settings } from '@/presentation/pages/Settings'\nimport { makeGetUnitConfig, makeTestEmail, makeSaveUnitConfig, makeGetUnits } from '@/main/factories/usecases'\n\nexport const makeSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const layoutStyles = StyleSheet.create({\n pageContent: {\n flex: 1,\n padding: 16,\n maxWidth: 1280,\n width: '100%',\n marginHorizontal: 'auto'\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n headerText: {\n padding: 12,\n fontWeight: '500',\n textTransform: 'uppercase'\n }\n})\n","import React, { useState, useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetTheme, GetThemeParams, GetUnits, SaveTheme, UploadFile } from '@/domain/usecases'\nimport { useErrorHandler, useImage, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, VStack, Text, UnitsSelector, Loading, Chip, OutdatedError } from '@/presentation/components'\nimport { ActionsButtons, ColorPicker, LoginBackgroundSelector, LogoSelector, ModalOnDiscardChanges, ModalOnSaveChanges, isLoadingState, unitsThemeState } from '@/presentation/pages/Theme/components'\nimport { currentUnitSettingsState } from '../Settings/components'\nimport { styles } from './styles'\n\nexport type ThemeProps = {\n getTheme: GetTheme\n saveTheme: SaveTheme\n uploadFile: UploadFile\n getUnits: GetUnits\n}\n\nexport const Theme: React.FC = ({\n getTheme,\n saveTheme,\n uploadFile,\n getUnits\n}) => {\n const theme = useTheme()\n const handleError = useErrorHandler()\n const { getImage } = useImage()\n const { hasChanged, setThemeClient, getThemeClient } = useThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useState('')\n const [backgroundEmpresa, setBackgroundEmpresa] = useState('')\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitSettingsState)\n const [units, setUnits] = useRecoilState(unitsThemeState)\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n if (currentUnit === 0) {\n setLoading(true)\n\n getUnits\n .getAll()\n .then(async units => {\n const getThemeParams: GetThemeParams = {\n codigoUnidade: units[0].codigoUnidade\n }\n const theme = await getTheme.get(getThemeParams)\n setThemeClient(theme)\n\n void getImage(theme.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n void getImage(theme.bgLogin, 'login')\n .then(background => { setBackgroundEmpresa(background) })\n .catch(console.error)\n\n setCurrentUnit(units[0].codigoUnidade)\n setUnits(units)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [currentUnit])\n )\n\n useEffect(() => {\n setLoading(true)\n if (currentUnit) {\n void (async () => {\n const getConfigParams: GetThemeParams = {\n codigoUnidade: currentUnit\n }\n const theme = await getTheme.get(getConfigParams)\n setThemeClient(theme)\n\n void getImage(theme.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n void getImage(theme.bgLogin, 'login')\n .then(background => { setBackgroundEmpresa(background) })\n .catch(console.error)\n })().finally(() => { setLoading(false) })\n }\n }, [currentUnit])\n\n return (\n \n \n \n \n \n \n Tema da Unidade\n \n\n \n \n {isLoading\n ? \n : \n {['primeirotema', 'padrao'].includes(themeClient?.fonte) &&\n \n \n Requer primeira gravação\n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n {(hasChanged() || ['primeirotema', 'padrao'].includes(themeClient?.fonte)) &&\n \n }\n \n \n \n )\n}\n","import React from 'react'\nimport { makeGetTheme, makeGetUnits, makeSaveTheme, makeUploadFile } from '@/main/factories/usecases'\nimport { Theme } from '@/presentation/pages/Theme'\n\nexport const makeThemeFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useErrorHandler, useMediaQueries, useProspectSettings, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { GetProspectConfigs, GetUnits, SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases'\nimport { Box, PageHeader, Loading, HStack, Checkbox, Text, TextInput, Button, VStack } from '@/presentation/components'\nimport { ActionsButtons, ModalAddConfigUnit, ModalDeleteOption, ModalOnDiscardChanges, ModalOnSaveChanges, TableAreaOfInterest, isLoadingState, isOpenAddConfigUnitState, prospectConfigsState, prospectUnitsState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\ntype ProspectSettingsProps = {\n getProspectConfigs: GetProspectConfigs\n saveProspectConfigs: SaveProspectConfigs\n getUnits: GetUnits\n}\n\nexport const ProspectSettings: React.FC = ({\n getProspectConfigs,\n saveProspectConfigs,\n getUnits\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const { startConfig, hasChanged } = useProspectSettings()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [prospectConfigs, setProspectConfigs] = useRecoilState(prospectConfigsState)\n const setAddOptionOpen = useSetRecoilState(isOpenAddConfigUnitState)\n const setUnits = useSetRecoilState(prospectUnitsState)\n const handleError = useErrorHandler()\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getUnits\n .getAll()\n .then(setUnits)\n .catch(handleError)\n\n getProspectConfigs\n .getAll()\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleChange = (param: keyof SaveProspectConfigsParams, value: boolean | string): void => {\n setProspectConfigs(currentState => ({ ...currentState, [param]: value }))\n }\n\n return (\n \n \n {isLoading\n ? \n : <>\n }\n />\n \n \n handleChange('ativo', !prospectConfigs.ativo)}\n color={themeClient.mainColor}\n />\n Ativar cadastro de Prospect\n \n {prospectConfigs.ativo &&\n \n \n handleChange('descricao', text)}\n maxLength={50}\n style={{\n width: isMobile ? '100%' : 500,\n marginBottom: isMobile ? 10 : 0\n }}\n />\n }\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => setAddOptionOpen(true)}\n style={{ width: isMobile ? '100%' : 'fit-content' }}\n />\n \n \n \n }\n \n {hasChanged() && }\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { ProspectSettings } from '@/presentation/pages/ProspectSettings'\nimport { makeGetProspectConfigs, makeGetUnits, makeSaveProspectConfigs } from '@/main/factories/usecases'\n\nexport const makeProspectSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n headerContainer: {\n width: '100%',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n titleBox: {\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.40)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.70)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.70)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useErrorHandler, useEventsSettings, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ShowEvents, GetEventsSettings, GetSigmaDeskConnections } from '@/domain/usecases'\nimport { Box, PageHeader, Loading, VStack, Text, Select, NoResultMessage, InputField, Divider } from '@/presentation/components'\nimport { ActionsButtons, ModalOnDiscardChanges, ModalOnSaveChanges, eventsSettingsState, isLoadingState, isOpenConnectionMenuState, sigmaDeskConnectionsState } from '@/presentation/pages/EventsSettings/components'\nimport { TiposEventosModel } from '@/domain/models'\nimport { styles } from './styles'\n\ntype EventsSettingsProps = {\n getSigmaDeskConnections: GetSigmaDeskConnections\n getEventsSettings: GetEventsSettings\n showEvents: ShowEvents\n}\n\nexport const EventsSettings: React.FC = ({ getSigmaDeskConnections, getEventsSettings, showEvents }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [connections, setConnections] = useRecoilState(sigmaDeskConnectionsState)\n const [isOpenConnectionMenu, setOpenConnectionMenu] = useRecoilState(isOpenConnectionMenuState)\n const { startConfig, hasChanged } = useEventsSettings()\n const [events, setEvents] = useRecoilState(eventsSettingsState)\n const resetEvents = useResetRecoilState(eventsSettingsState)\n const handleError = useErrorHandler()\n\n const handleBounceEvent = (codEvento: string, show: boolean): void => {\n let eventosTodos: TiposEventosModel[]\n let eventosExibidos: TiposEventosModel[]\n\n if (show) {\n const selectedEvent = events.listaTipos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosTodos = events.listaTipos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosExibidos = [...events.listaExibidos, selectedEvent]\n } else {\n const selectedEvent = events.listaExibidos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosExibidos = events.listaExibidos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosTodos = [...events.listaTipos, selectedEvent]\n }\n\n const newConfig = Object.assign({}, events)\n newConfig.listaTipos = eventosTodos\n newConfig.listaExibidos = eventosExibidos\n\n setEvents(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codEvento: string): void => {\n event.dataTransfer.setData('codEvento', codEvento)\n }\n\n const onDrop = (event: React.DragEvent, show: boolean): void => {\n const codEvento = event.dataTransfer.getData('codEvento')\n handleBounceEvent(codEvento, show)\n }\n\n const handleClick = (codEvento: string, show: boolean): void => {\n handleBounceEvent(codEvento, show)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n const handleGetEvents = (): void => {\n resetEvents()\n setLoading(true)\n\n const params = {\n codInterno: getSelectedConnection() as number\n }\n\n getEventsSettings\n .getAll(params)\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleSelectConnection = (id: number): void => {\n const updatedConnections = connections.map((connection) => {\n if (connection.id === id) return { ...connection, isSelected: true }\n else if (connection.isSelected) return { ...connection, isSelected: false }\n\n return connection\n })\n\n resetEvents()\n setConnections(updatedConnections)\n }\n\n const getSelectedConnection = (type: 'description' | 'id' = 'id'): number | string => {\n const selectedConnection = connections?.find((connection) => connection.isSelected)\n\n if (type === 'description') {\n return selectedConnection ? selectedConnection.descricao : ''\n } else {\n return selectedConnection ? selectedConnection.id : 0\n }\n }\n\n useEffect(() => { getSelectedConnection() !== 0 && handleGetEvents() }, [connections])\n\n useFocusEffect(\n useCallback(() => {\n getSigmaDeskConnections\n .getAll()\n .then(setConnections)\n .catch(handleError)\n }, [])\n )\n\n return (\n \n \n \n }\n />\n setOpenConnectionMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n {(getSelectedConnection() !== 0)\n ? isLoading\n ? \n : <>\n \n \n * Caso nenhum evento seja selecionado para ser exibido, todos os eventos serão listados.\n \n { isMobile &&\n \n ** Clique sobre o item para muda-lo de listagem.\n \n }\n \n\n \n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Exibidos\n
\n {events?.listaExibidos?.map((eventoExibido) => (\n onDrag(event, eventoExibido.codigo)}\n onClick={() => handleClick(eventoExibido.codigo, false)}\n style={styles.optionSelectorChip}\n >\n \n {`${eventoExibido.codigoExibicao} - ${eventoExibido.descricao}`}\n
\n ))}\n \n \n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Ocultos\n
\n {events?.listaTipos?.map((eventoComum) =>\n onDrag(event, eventoComum.codigo)}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(eventoComum.codigo, true)}\n >\n \n {`${eventoComum.codigoExibicao} - ${eventoComum.descricao}`}\n
\n )}\n \n \n
\n
\n {hasChanged() && }\n \n : (connections.length > 0)\n ? \n : \n }\n
\n \n \n setOpenConnectionMenu(false)}\n onSelect={(id) => handleSelectConnection(id)}\n title={'Selecione a conexão de monitoramento'}\n items={connections}\n />\n
\n )\n}\n","import React from 'react'\nimport { EventsSettings } from '@/presentation/pages/EventsSettings'\nimport { makeShowEvents, makeGetEventsSettings, makeGetSigmaDeskConnectionsFactory } from '@/main/factories/usecases'\n\nexport const makeEventsSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { TicketModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingFinancialState = atom({\n key: 'isLoadingFinancialState',\n default: true\n})\n\nexport const isLoadingOpenBankSlip = atom({\n key: 'isLoadingOpenBankSlip',\n default: false\n})\n\nexport const ticketsState = atom({\n key: 'ticketsState',\n default: [] as TicketModel[]\n})\n","\nimport { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingCreditCardState',\n default: true\n})\n\nexport const isEditableState = atom({\n key: 'isEditableCreditCardState',\n default: true\n})\n\nexport const creditCardState = atom({\n key: 'creditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useCreditCard, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, TextInput, VStack } from '@/presentation/components'\nimport { creditCardState } from '@/presentation/pages/Cartao/components'\n\ntype AddNewCreditCardProps = {\n isLoading: boolean\n isEditable: boolean\n}\n\nexport const AddNewCreditCard: React.FC = ({\n isEditable,\n isLoading\n}) => {\n const { maskCreditCardValidity, maskCreditCardNumber, getCreditCardType, isValidExpiration } = useCreditCard()\n const { getThemeClient } = useThemeClient()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n\n const themeClient = getThemeClient()\n\n const handleChange = (name: string, value: string): void => {\n setCreditCard(currentState => ({\n ...currentState,\n [name]: value,\n type: getCreditCardType(currentState.numero)\n }))\n }\n\n return (\n \n \n handleChange('nome', text)}\n />\n handleChange('numero', maskCreditCardNumber(text.replace(/[^0-9]/g, '')))}\n />\n \n }\n onChangeText={(text) => { handleChange('expiracao', maskCreditCardValidity(text)) }}\n />\n handleChange('ccv', text.replace(/[^0-9]/g, ''))}\n />\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n formArea: {\n width: '100%',\n maxWidth: 428,\n padding: 16\n }\n})\n","import { CardFlagsTypes } from '@/domain/models'\n\ntype CreditCardResult = {\n getCreditCardType: (creditCardNumber: string) => CardFlagsTypes\n maskCreditCardNumber: (creditCardNumber: string) => string\n maskCreditCardValidity: (value: string) => string\n isValidExpiration: (exp: string) => boolean\n}\n\nexport const useCreditCard = (): CreditCardResult => {\n const getCreditCardType = (creditCardNumber: string): CardFlagsTypes => {\n let result: CardFlagsTypes | 'unknown' = 'unknown'\n\n if (/^5[1-5]/.test(creditCardNumber)) {\n result = 'mastercard'\n } else if (/^4/.test(creditCardNumber)) {\n result = 'visa'\n } else if (/^3[47]/.test(creditCardNumber)) {\n result = 'amex'\n } else if (/3(?:0[0-5]|[68][0-9])[0-9]{11}/.test(creditCardNumber)) {\n result = 'diners'\n } else if (/6(?:011|5[0-9]{2})[0-9]{12}/.test(creditCardNumber)) {\n result = 'discover'\n }\n\n return result\n }\n\n const maskCreditCardNumber = (creditCardNumber: string): string => {\n const trimmedNumber = creditCardNumber.replace(/\\s/g, '')\n\n const regex = /(\\d{4})(?=\\d)/g\n\n return trimmedNumber.replace(regex, '$1 ')\n }\n\n const maskCreditCardValidity = (value: string): string => {\n const cleanedText = value.replace(/[^0-9]/g, '')\n let formattedText = cleanedText\n\n if (cleanedText.length <= 2) {\n formattedText = cleanedText\n } else {\n formattedText = cleanedText.slice(0, 2) + '/' + cleanedText.slice(2)\n }\n\n return formattedText\n }\n\n const isValidExpiration = (exp: string): boolean => {\n const regex = /^(0[1-9]|1[0-2])\\/\\d{2}$/\n return regex.test(exp)\n }\n\n return {\n getCreditCardType,\n maskCreditCardNumber,\n maskCreditCardValidity,\n isValidExpiration\n }\n}\n","import React from 'react'\nimport { StyleSheet, Image, ImageBackground } from 'react-native'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, Text, VStack } from '@/presentation/components'\nimport { CreditCardModel } from '@/domain/models'\n\ntype CredCardProps = {\n creditCard: CreditCardModel\n}\n\nexport const CreditCard: React.FC = ({ creditCard }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n {creditCard?.numero}\n \n \n {creditCard?.nome}\n \n {creditCard?.expiracao}\n {creditCard?.ccv}\n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 428,\n borderRadius: 4\n },\n card: {\n width: '100%',\n maxWidth: 428,\n padding: 16,\n paddingBottom: 32,\n flex: 1,\n borderRadius: 4,\n justifyContent: 'space-between',\n shadowColor: 'rgba(0, 0, 0, 0.12)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 8,\n borderColor: 'rgba(0, 0, 0, 0.12)',\n borderWidth: 1\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { creditCardState, isEditableState, isOpenEditConfirmationState } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\nexport const ModalModalEditConfirmation: React.FC = () => {\n const theme = useTheme()\n const [isOpen, setOpen] = useRecoilState(isOpenEditConfirmationState)\n const setCreditCard = useSetRecoilState(creditCardState)\n const setEditable = useSetRecoilState(isEditableState)\n\n const handleClose = (): void => {\n setOpen(false)\n }\n\n const handleEdit = (): void => {\n setEditable(true)\n setOpen(false)\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n ccv: ''\n }))\n }\n\n return (\n \n \n Deseja realmente alterar os dados do cartão?\n O número e CVC do cartão deverão ser informados novamente.\n\n \n \n \n \n \n \n )\n}\n","\nimport { atom } from 'recoil'\n\nexport const isOpenEditConfirmationState = atom({\n key: 'isOpenEditConfirmationState',\n default: false\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CardFlagsTypes } from '@/domain/models'\nimport { Button, HStack, ModalBase, Text, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, CreditCard } from '@/presentation/pages/Cartao/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { creditCardsState, isOpenTicketViewState, errorAddOtherCreditCardState, isOpenAddOtherCreditCardState, otherCreditCardState } from '@/presentation/pages/Financial/components'\n\nexport const AddOtherCreditCard: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useRecoilState(isOpenAddOtherCreditCardState)\n const [otherCreditCard, setOtherCreditCard] = useRecoilState(otherCreditCardState)\n const [error, setError] = useRecoilState(errorAddOtherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const setCreditCards = useSetRecoilState(creditCardsState)\n\n const themeClient = getThemeClient()\n\n const handleResetCard = (): void => {\n setOtherCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n const handleAddCreditCard = (): void => {\n if (isValidDataCard()) {\n handleClose()\n setCreditCards(currentState => [...currentState, otherCreditCard])\n handleResetCard()\n } else {\n setError('Todos os dados do cartão devem ser informados')\n }\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setOpenTicketView(true)\n setError('')\n }\n\n const isValidDataCard = (): boolean => {\n if (\n !otherCreditCard.nome ||\n !otherCreditCard.numero ||\n !otherCreditCard.expiracao ||\n otherCreditCard.expiracao.length < 4 ||\n !otherCreditCard.expiracao.includes('/') ||\n !otherCreditCard.ccv ||\n otherCreditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }\n\n return (\n \n \n Adicionar Cartão {isMobile ? '' : 'para pagamento'}\n \n \n \n \n {error &&\n \n \n Todos os dados do cartão devem ser informados\n \n }\n \n \n \n \n \n \n \n \n )\n}\n","import { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isOpenAddOtherCreditCardState = atom({\n key: 'isOpenAddOtherCreditCardState',\n default: false\n})\n\nexport const otherCreditCardState = atom({\n key: 'otherCreditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes\n }\n})\n\nexport const errorAddOtherCreditCardState = atom({\n key: 'errorAddOtherCreditCardState',\n default: ''\n})\n","import { StyleSheet } from 'react-native'\nexport { default as CopyIcon } from '@expo/vector-icons/MaterialCommunityIcons'\nexport { default as MaterialIcons } from '@expo/vector-icons/MaterialIcons'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'fit-content',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n statusIcon: {\n height: 20,\n width: 20\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { GenerateInsideBankSlip, GetTicketPix, OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Text, IconButton, HStack, Clipboard, Chip, PixIcon } from '@/presentation/components'\nimport { isLoadingOpenBankSlip, isOpenTicketPixState, isOpenTicketViewState, currentTicketPixState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles, CopyIcon, MaterialIcons } from './styles'\n\nconst FORMAT_DATE_DESCRIPTION = 'DD/MM/YY'\n\ntype CardTicketProps = {\n ticket: TicketModel\n openBankSlip: OpenBankSlip\n getTicketPix: GetTicketPix\n dateAdapter: DateAdapter\n current?: boolean\n}\n\nexport const INFO_INSIDE_SLIP_BANK = `O boleto só será atualizado ${GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE} dias após o vencimento. Você pode realizar o pagamento dele, mesmo estando vencido, em qualquer agência bancária em até 58 dias`\n\nexport const CardTicket: React.FC = ({\n ticket,\n openBankSlip,\n dateAdapter,\n current = false\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { formatCurrency } = useFormat()\n const setCurrentTicketPix = useSetRecoilState(currentTicketPixState)\n const setOpenPix = useSetRecoilState(isOpenTicketPixState)\n const setOpen = useSetRecoilState(isOpenTicketViewState)\n const setTicketView = useSetRecoilState(ticketViewState)\n\n const [isLoading, setLoading] = useRecoilState(isLoadingOpenBankSlip)\n\n const client = getClient()\n const daysOfArrears = dateAdapter.diffInDays({ startDate: dateAdapter.today(), endDate: dateAdapter.parse(ticket.vencimento) })\n\n const handleCopyBarCode = (): void => {\n Clipboard.setString(ticket.linhaDigitavel)\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticket.cliente,\n nossoNumero: ticket.nossoNumero,\n codBanco: ticket.codBanco,\n dtVencimento: ticket.vencimento,\n registrado: ticket.registrado,\n linkBoleto: ticket.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticket.numero} e vencimento ${dateAdapter.format(ticket.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n\n const handleOpenPix = (codInterno: number): void => {\n setOpenPix(true)\n setCurrentTicketPix(codInterno)\n }\n\n const handleOpenTicketView = (ticket: TicketModel): void => {\n setTicketView(ticket)\n setOpen(true)\n }\n\n const statusColor = {\n paga: theme.colors.success,\n 'em Aberto': theme.colors.info,\n vencida: theme.colors.error,\n venceHoje: theme.colors.secondary\n }[ticket.situacao]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten,\n backgroundImage: `linear-gradient(to right, ${statusColor}, ${statusColor})`\n }\n\n const textStatusStyles = {\n ...styles.textStatus,\n color: theme.colors.textsLight\n }\n\n const amountStyles = {\n ...styles.title,\n color: ticket.situacao === 'paga' ? theme.colors.textsLighten : theme.colors.texts\n }\n\n const makeTags = (): JSX.Element =>\n \n {current && }\n {ticket.situacao === 'venceHoje' && }\n {ticket.saldo > 0 && ticket.situacao === 'vencida' && ticket.atraso > 0 &&\n 1 ? 's' : ''} de atraso`} />\n }\n \n\n const makePaid = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.valorDuplicata)}\n \n \n \n \n \n \n \n Você pagou em {dateAdapter.format(ticket.vencimento, FORMAT_DATE_DESCRIPTION)}\n \n \n vencimento {dateAdapter.format(ticket.vencimento)}\n \n \n \n )\n }\n\n const makeExpired = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura Vencida {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.saldo)}\n \n \n \n {[BANK.BoletoInside].includes(ticket.codBanco) &&\n }\n onPress={() => handleOpenPix(ticket.codInterno)}\n testID='fatura-pix'\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n venceu em {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n const makeOpened = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura {current ? 'Atual' : ''} {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.saldo)}\n \n \n \n {[BANK.BoletoInside].includes(ticket.codBanco) &&\n }\n onPress={() => handleOpenPix(ticket.codInterno)}\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n vencimento {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n return (\n handleOpenTicketView(ticket)}\n >\n {{\n paga: makePaid(),\n vencida: makeExpired(),\n 'em Aberto': makeOpened(),\n venceHoje: makeOpened()\n }[ticket.situacao]}\n \n )\n}\n","import React from 'react'\nimport { TouchableOpacity } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CreditCardModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Checkbox, HStack, Text, VStack } from '@/presentation/components'\nimport { creditCardSelectedState } from '@/presentation/pages/Financial/components'\n\ntype CreditCardItemProps = {\n creditCard: CreditCardModel\n isEditable?: boolean\n}\n\nexport const CreditCardItem: React.FC = ({\n creditCard,\n isEditable = true\n}) => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [creditCardSelected, setCreditCardSelected] = useRecoilState(creditCardSelectedState)\n\n const themeClient = getThemeClient()\n const isSelected = creditCard.numero === creditCardSelected?.numero\n\n return (\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n >\n \n \n \n \n \n \n {creditCard.nome}\n \n \n **** **** **** {creditCard.numero.slice(-4)}\n \n \n {isEditable &&\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n />\n }\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n paddingTop: 12\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useState } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { PayWithCreditCard } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Chip, Loading, Text, VStack } from '@/presentation/components'\nimport { CreditCardItem, creditCardSelectedState, isLoadingCreditCardsState, isOpenAddOtherCreditCardState, isOpenCreditCardsState, isOpenTicketViewState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype PayCreditCardsProps = {\n payWithCreditCard: PayWithCreditCard\n}\n\nexport const PayCreditCards: React.FC = ({ payWithCreditCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { formatCurrency } = useFormat()\n const [isPaymentConfirmation, setPaymentConfirmation] = useState(false)\n const [isLoading, setLoading] = useRecoilState(isLoadingCreditCardsState)\n const creditCardSelected = useRecoilValue(creditCardSelectedState)\n const setOpen = useSetRecoilState(isOpenCreditCardsState)\n const setOpenOtherCreditCard = useSetRecoilState(isOpenAddOtherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const ticketView = useRecoilValue(ticketViewState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n const handlePay = (): void => {\n setLoading(true)\n\n payWithCreditCard\n .pay({ duplicata: ticketView, cartao: creditCardSelected })\n .then(notify.info)\n .catch(handlerError)\n .finally(() => {\n setOpenTicketView(false)\n setLoading(false)\n handleClose()\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setPaymentConfirmation(false)\n }\n\n const handleOpenOtherCreditCard = (): void => {\n setOpenTicketView(false)\n setOpenOtherCreditCard(true)\n setPaymentConfirmation(false)\n }\n\n return (\n isLoading\n ? \n : \n 0\n ? 'Selecione o cartão de crédito'\n : 'Nenhum cartão cadastrado'\n }\n color={theme.colors.info}\n variant='outlined'\n containerStyle={{ marginBottom: 8 }}\n />\n {isPaymentConfirmation\n ? \n Confirma os dados para pagamento com o cartão final {creditCardSelected?.numero?.slice(-4)} no valor de {formatCurrency(ticketView.valorAtualizado)}?\n \n \n : \n {client.listaCartoes?.map(creditCard =>\n \n )}\n \n }\n\n \n {client.listaCartoes.length > 0 &&\n isPaymentConfirmation ? handlePay() : setPaymentConfirmation(true)}\n />\n }\n {!isPaymentConfirmation &&\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { CreditCardModel } from '@/domain/models'\n\nexport const isLoadingCreditCardsState = atom({\n key: 'isLoadingCreditCardsState',\n default: false\n})\n\nexport const isOpenCreditCardsState = atom({\n key: 'isOpenCreditCardsState',\n default: false\n})\n\nexport const creditCardsState = atom({\n key: 'creditCardsState',\n default: [] as CreditCardModel[]\n})\n\nexport const creditCardSelectedState = atom({\n key: 'creditCardSelectedState',\n default: null as unknown as CreditCardModel\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenFinancialFiltersState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const { isMobile } = useMediaQueries()\n const setOpen = useSetRecoilState(isOpenFinancialFiltersState)\n const filters = useRecoilValue(ticketsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n const situation = {\n 'Em Aberto': isMobile ? 'Em Aberto' : 'Somente em Aberto',\n Todas: isMobile ? 'Todos' : 'Todos Status',\n Pagas: isMobile ? 'Pagas' : 'Somente Pagas'\n }[filters.situacao]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n content: {\n alignItems: 'center',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetTicketPix, GetTicketPixParams } from '@/domain/usecases'\nimport { TicketModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, ModalBase, Clipboard, QRCodeSvg, Loading, Chip, HStack, VStack, TextInput } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingTicketPixState, isOpenTicketPixState, currentTicketPixState, ticketsState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype ModalTicketPixProps = {\n getTicketPix: GetTicketPix\n dateAdapter: DateAdapter\n}\n\nexport const ModalTicketPix: React.FC = ({\n getTicketPix,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler(() => handleClose())\n const [currentTicketPix, setCurrentTicketPix] = useRecoilState(currentTicketPixState)\n const [isOpen, setOpen] = useRecoilState(isOpenTicketPixState)\n const [isLoading, setLoading] = useRecoilState(isLoadingTicketPixState)\n const tickets = useRecoilValue(ticketsState)\n const [pix, setPix] = useState('')\n\n const [ticket, setTicket] = useState()\n const isHttps = window.location.protocol === 'https:'\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n if (currentTicketPix) {\n handleGetPix()\n const ticket = tickets?.find(ticket => ticket.codInterno === currentTicketPix)\n setTicket(ticket)\n } else {\n setPix('')\n }\n }, [currentTicketPix])\n\n const handleGetPix = (): void => {\n setLoading(true)\n\n const params: GetTicketPixParams = {\n codInternoDuplicata: currentTicketPix\n }\n\n getTicketPix\n .getPix(params)\n .then(pix => setPix(pix))\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleCopyPix = (): void => {\n if (isHttps) {\n notify.show('O pix foi copiado para área de transferência')\n Clipboard.setString(pix)\n handleClose()\n } else {\n const input = document.getElementById('pix-code')\n input?.focus()\n }\n }\n\n const handleClose = useCallback((): void => {\n setOpen(false)\n setCurrentTicketPix(0)\n }, [])\n\n return (\n \n \n {isLoading\n ? \n : \n \n \n \n Boleto via PIX\n \n \n \n \n Vencimento {ticket?.vencimento && dateAdapter.format(ticket?.vencimento)}\n \n \n Valor {ticket?.valorDuplicata && formatCurrency(ticket?.valorDuplicata)}\n \n \n Valor Atualizado {ticket?.valorAtualizado && formatCurrency(ticket?.valorAtualizado)}\n \n \n {!!pix &&\n <>\n \n \n \n }\n \n \n : false}\n />\n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenTicketPixState = atom({\n key: 'isOpenTicketPixState',\n default: false\n})\n\nexport const isLoadingTicketPixState = atom({\n key: 'isLoadingTicketPixState',\n default: false\n})\n\nexport const currentTicketPixState = atom({\n key: 'currentTicketPixState',\n default: 0\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusTicketFilter, isLoadingFinancialState, isOpenFinancialFiltersState, ticketsFiltersState, ticketsState } from '@/presentation/pages/Financial/components'\nimport { GetTickets, GetTicketsParams, GetTicketSituation } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\nexport type FiltrosFatura = {\n situacao: GetTicketSituation\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getTickets: GetTickets\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getTickets, dateAdapter }) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const errorHandler = useErrorHandler()\n const setTickets = useSetRecoilState(ticketsState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }, [])\n\n const handleGetTickets = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paramsGetTicket)\n .then(setTickets)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { GetTickets } from '@/domain/usecases'\n\nexport const isOpenFinancialFiltersState = atom({\n key: 'isOpenFinancialFiltersState',\n default: false\n})\n\nexport const ticketsFiltersState = atom({\n key: 'ticketsFiltersState',\n default: {\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { statusTicketState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { GetTicketSituation } from '@/domain/usecases'\n\nexport const SelectStatusTicketFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const statusTicket = useRecoilValue(statusTicketState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: GetTicketSituation): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusTicket.map((statusOption) => (\n handleOnSelect(statusOption.value as GetTicketSituation)}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusTicketState = atom({\n key: 'selectStatusTicketState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Faturas Pagas', value: 'Pagas' },\n { _id: 'Faturas em Aberto', value: 'Em Aberto' }\n ]\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialIcons, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Clipboard, VStack, PixIcon } from '@/presentation/components'\nimport { isLoadingTicketViewState, isOpenCreditCardsState, isOpenTicketPixState, currentTicketPixState, ticketViewState, isOpenTicketViewState } from '@/presentation/pages/Financial/components'\n\ntype TicketActionsViewProps = {\n openBankSlip: OpenBankSlip\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\n\nexport const TicketActions: React.FC = ({ dateAdapter, openBankSlip }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const [ticketView, setTicketView] = useRecoilState(ticketViewState)\n const setOpenTicketViewState = useSetRecoilState(isOpenTicketViewState)\n const setLoading = useSetRecoilState(isLoadingTicketViewState)\n const setOpenPix = useSetRecoilState(isOpenTicketPixState)\n const setOpenCreditCards = useSetRecoilState(isOpenCreditCardsState)\n const setCurrentTicketPix = useSetRecoilState(currentTicketPixState)\n\n const client = getClient()\n\n const handleCopyBarCode = (): void => {\n Clipboard.setString(ticketView.linhaDigitavel)\n handleClose()\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenCreditCard = (): void => setOpenCreditCards(true)\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticketView?.cliente,\n nossoNumero: ticketView?.nossoNumero,\n codBanco: ticketView?.codBanco,\n dtVencimento: ticketView?.vencimento,\n registrado: ticketView?.registrado,\n linkBoleto: ticketView?.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticketView?.numero} e vencimento ${dateAdapter.format(ticketView?.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }\n\n const handleOpenPix = (codInterno: number): void => {\n handleClose()\n setOpenPix(true)\n if (codInterno) {\n setCurrentTicketPix(codInterno)\n }\n }\n\n const handleClose = (): void => {\n setTicketView(null as unknown as TicketModel)\n setOpenTicketViewState(false)\n }\n\n return (\n \n {[BANK.BoletoInside].includes(ticketView.codBanco) &&\n }\n onPress={() => handleOpenPix(ticketView?.codInterno)}\n />\n }\n {ticketView?.permiteCartaoCredito &&\n ticketView?.atraso <= 0 &&\n !ticketView?.dupProtestada &&\n }\n onPress={handleOpenCreditCard}\n />\n }\n {!!ticketView?.linhaDigitavel && !!ticketView?.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n />\n }\n {(!!ticketView?.nossoNumero || !!ticketView?.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n />\n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { GenerateInsideBankSlip, OpenBankSlip, PayWithCreditCard } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useFormat, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, Chip, HStack, VStack, Loading, MessageBlock, MessageBlockStatus } from '@/presentation/components'\nimport { PayCreditCards, TicketActions, isLoadingTicketViewState, isOpenCreditCardsState, isOpenTicketViewState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype TicketViewViewProps = {\n openBankSlip: OpenBankSlip\n payWithCreditCard: PayWithCreditCard\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\nconst INFO_INSIDE_SLIP_BANK = `O boleto só será atualizado ${GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE} dias após o vencimento. Você pode realizar o pagamento dele, mesmo estando vencido, em qualquer agência bancária em até 58 dias`\n\nexport const TicketView: React.FC = ({\n dateAdapter,\n payWithCreditCard,\n openBankSlip\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { formatCurrency } = useFormat()\n const [ticketView, setTicketView] = useRecoilState(ticketViewState)\n const isLoading = useRecoilValue(isLoadingTicketViewState)\n const [isOpen, setOpen] = useRecoilState(isOpenTicketViewState)\n const [isPayCreditCard, setPayCreditCard] = useRecoilState(isOpenCreditCardsState)\n\n const themeClient = getThemeClient()\n const daysOfArrears = dateAdapter.diffInDays({ startDate: dateAdapter.today(), endDate: dateAdapter.parse(ticketView?.vencimento) })\n\n const handleClose = (): void => {\n setOpen(false)\n setTicketView(null as unknown as TicketModel)\n setPayCreditCard(false)\n }\n\n const colorSituationStyle = {\n paga: theme.colors.success,\n vencida: theme.colors.error,\n venceHoje: theme.colors.secondary,\n 'em Aberto': theme.colors.info\n }[ticketView?.situacao]\n\n const titleSituation = {\n paga: 'Fatura paga',\n vencida: 'Fatura vencida',\n venceHoje: 'Vencendo hoje',\n 'em Aberto': 'Fatura em Aberto'\n }[ticketView?.situacao]\n\n const styleStatusSituation = {\n paga: 'success',\n vencida: 'error',\n venceHoje: 'warning',\n 'em Aberto': 'info'\n }[ticketView?.situacao] as MessageBlockStatus\n\n const descriptionSituation = {\n paga: `Você pagou em ${dateAdapter.format(ticketView?.dataPagamento, 'DD/MM/yyyy')} o valor ${formatCurrency(ticketView?.valorPago)}`,\n vencida: `Atraso de ${daysOfArrears} dia${daysOfArrears > 1 ? 's' : ''} valor atualizado ${formatCurrency(ticketView?.valorAtualizado)}`,\n venceHoje: 'Sua fatura vence hoje efetue o pagamento para evitar juros',\n 'em Aberto': `Fatura em aberto vence em ${daysOfArrears} dia${daysOfArrears > 1 ? 's' : ''}`\n }\n\n const descriptionInsideSlipBank = {\n paga: descriptionSituation.paga,\n vencida: INFO_INSIDE_SLIP_BANK,\n venceHoje: descriptionSituation.venceHoje,\n 'em Aberto': descriptionSituation['em Aberto']\n }[ticketView?.situacao]\n\n return (\n \n \n {!ticketView || isLoading\n ? \n : \n \n \n \n \n \n \n Emissão\n \n {dateAdapter.format(ticketView?.dataEmissao, 'DD/MM/yyyy')}\n \n \n \n Vencimento\n \n {dateAdapter.format(ticketView?.vencimento, 'DD/MM/yyyy')}\n \n \n \n \n \n Valor Duplicata\n {ticketView?.saldo &&\n \n {formatCurrency(ticketView?.saldo) }\n \n }\n \n \n Valor Atualizado\n {ticketView?.valorAtualizado !== ticketView?.saldo\n ? {formatCurrency(ticketView?.valorAtualizado)}\n : {formatCurrency(ticketView?.saldo)}\n }\n \n \n \n \n Forma de Pagamento Faturado\n \n {ticketView?.nomeFormaPagto?.split('-')?.[1]?.trim()?.toUpperCase()}\n \n \n \n {!isPayCreditCard &&\n \n }\n {isPayCreditCard\n ? \n : ticketView?.situacao !== 'paga' &&\n \n }\n \n }\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TicketModel } from '@/domain/models'\n\nexport const isLoadingTicketViewState = atom({\n key: 'isLoadingTicketViewState',\n default: false\n})\n\nexport const ticketViewState = atom({\n key: 'ticketViewState',\n default: null as unknown as TicketModel\n})\n\nexport const isOpenTicketViewState = atom({\n key: 'isOpenTicketViewState',\n default: false\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback, useRef, useState } from 'react'\nimport { SafeAreaView, RefreshControl } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { GetTicketPix, GetTickets, GetTicketsParams, OpenBankSlip, PayWithCreditCard } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ActionsButtons, Box, ScrollToTopButton, PageHeader, CardList } from '@/presentation/components'\nimport { ticketsState, SideFilters, ticketsFiltersState, CardTicket, ModalTicketPix, isOpenFinancialFiltersState, FiltersChipPanel, isLoadingFinancialState, TicketView, AddOtherCreditCard } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype FinancialProps = {\n getTickets: GetTickets\n getTicketPix: GetTicketPix\n payWithCreditCard: PayWithCreditCard\n openBankSlip: OpenBankSlip\n dateAdapter: DateAdapter\n}\n\nexport const Financial: React.FC = ({\n dateAdapter,\n getTickets,\n getTicketPix,\n payWithCreditCard,\n openBankSlip\n}) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const [refreshing, setRefreshing] = useState(false)\n const [tickets, setTickets] = useRecoilState(ticketsState)\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const filters = useRecoilValue(ticketsFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const RN_TOTAL_ITEMS_SHOW = isMobile ? 2 : 5\n\n const currentTicket = tickets?.find(ticket => dateAdapter.parse(ticket.vencimento).getMonth() === dateAdapter.today().getMonth()) ?? tickets[0]\n const orderTickets = tickets?.filter(ticket => ticket.codInterno !== currentTicket.codInterno)\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleRefreshing = (): void => {\n setRefreshing(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setRefreshing(false))\n }\n\n const scrollToTop = useCallback((): void => {\n if (scrollViewRef.current) {\n (scrollViewRef.current as any).scrollTo({ y: 0, animated: true })\n }\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n }\n >\n \n }\n openFilters={handleOnFilter}\n />\n \n \n {currentTicket &&\n \n }\n {orderTickets?.map(ticket =>\n \n )}\n \n \n \n {tickets?.length > RN_TOTAL_ITEMS_SHOW &&\n !isOpen &&\n \n \n \n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Financial } from '@/presentation/pages/Financial'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetTicketPix, makeGetTickets, makeOpenBankSlip, makePayWithCreditCard } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeFinancialFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingLoginState',\n default: false\n})\n\nexport const isOpenForgotPasswordState = atom({\n key: 'isOpenForgotPasswordState',\n default: false\n})\n\nexport const loginState = atom({\n key: 'login',\n default: {\n username: '',\n password: '',\n recoveryEmail: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useResetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ForgotPassword } from '@/domain/usecases'\nimport { ModalBase, Box, Button, Text, TextInput } from '@/presentation/components'\nimport { styles } from './styles'\nimport { useNotify, useTheme } from '@/presentation/hooks'\nimport { isLoadingState, isOpenForgotPasswordState, loginState } from '../atom'\n\ntype ForgotPasswordProps = {\n username: string\n recoveryEmail: string\n}\n\ntype ModalForgotPasswordProps = {\n forgotPassword: ForgotPassword\n}\n\nexport const ModalForgotPassword: React.FC = ({ forgotPassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const [state, setState] = useRecoilState(loginState)\n const [isOpen, setOpen] = useRecoilState(isOpenForgotPasswordState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const reset = useResetRecoilState(loginState)\n\n const handleChangeInput = (name: keyof ForgotPasswordProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleOnRequestAccess = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n forgotPassword\n .requestAccess({ email: state.recoveryEmail })\n .then(message => {\n notify.show(message)\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n\n handleCloseModal()\n }\n\n const handleCloseModal = (): void => setOpen(false)\n\n return (\n \n \n Recuperar senha\n\n handleChangeInput('recoveryEmail', text)}\n value={state.recoveryEmail}\n />\n\n \n \n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n content: {\n gap: 8\n }\n})\n","import React from 'react'\nimport { GestureResponderEvent, TouchableOpacity } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { UserModel } from '@/domain/models'\nimport { Authentication } from '@/domain/usecases'\nimport { useAuth, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, List, Loading } from '@/presentation/components'\nimport { isLoadingState, isOpenUserSelect, loginState, usersSelectState } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\n\ntype ModalUserSelectProps = {\n authentication: Authentication\n}\n\nexport const ModalUserSelect: React.FC = ({ authentication }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { login } = useAuth()\n const { password } = useRecoilValue(loginState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [users, setUsersSelect] = useRecoilState(usersSelectState)\n const [isOpen, setOpen] = useRecoilState(isOpenUserSelect)\n const reset = useResetRecoilState(loginState)\n\n const handleLogin = (event: GestureResponderEvent, client: UserModel): void => {\n event.preventDefault()\n setLoading(true)\n\n authentication\n .auth({\n username: client.codCliente.toString(),\n password\n })\n .then(authToken => {\n login(authToken)\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => {\n setLoading(false)\n handleCancel()\n })\n }\n\n const handleCancel = (): void => {\n setOpen(false)\n setUsersSelect([])\n }\n\n return (\n \n \n {isLoading\n ? \n : <>\n Selecione o usuário para Login\n \n \n {users?.map(client =>\n handleLogin(event, client)}\n >\n }\n titleStyle={{ fontWeight: '600' }}\n />\n \n )}\n \n \n \n }\n\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { UserModel } from '@/domain/models'\n\nexport const isOpenUserSelect = atom({\n key: 'isOpenUserSelect',\n default: false\n})\n\nexport const usersSelectState = atom({\n key: 'usersSelectState',\n default: [] as UserModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n }\n})\n","import React from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { ProspectRegistration, ProspectRegistrationParams } from '@/domain/usecases'\nimport { ModalBase, Box, Button, Text, TextInput, VStack, InputField, HStack, Select } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { isLoadingProspectRegistrationState, isOpenInterestAreaState, isOpenProspectRegistrationState, prospectRegistrationState, selectedInterestAreaState } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\nimport { prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\ntype ProspectRegistrationProps = {\n prospectRegistration: ProspectRegistration\n}\n\nexport const ModalProspectRegistration: React.FC = ({ prospectRegistration }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { validateCPF } = useFormat()\n const [state, setState] = useRecoilState(prospectRegistrationState)\n const [isOpen, setOpen] = useRecoilState(isOpenProspectRegistrationState)\n const [selectedInteresetArea, setSelectedInterestArea] = useRecoilState(selectedInterestAreaState)\n const [isOpenAreaIntereset, setOpenAreaInterest] = useRecoilState(isOpenInterestAreaState)\n const [isLoading, setLoading] = useRecoilState(isLoadingProspectRegistrationState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const interesetArea = useRecoilValue(prospectInterestAreaState)\n const reset = useResetRecoilState(prospectRegistrationState)\n const resetInteresetArea = useResetRecoilState(selectedInterestAreaState)\n const errorHandler = useErrorHandler()\n\n const handleChangeInput = (name: keyof ProspectRegistrationParams, value: string | number): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleRegister = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const params: ProspectRegistrationParams = {\n ...state,\n email: selectedInteresetArea.email,\n codUnidade: selectedInteresetArea.unidade\n }\n\n prospectRegistration\n .register(params)\n .then(() => {\n notify.show('Cadastro realizado com sucesso, aguarde o contato da empresa para continuar o acesso!')\n resetInteresetArea()\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n\n handleCloseModal()\n }\n\n const isValidForm = (): boolean => {\n if (!selectedInteresetArea.email) {\n return false\n }\n\n if (state.cpf.length > 13 && validateCPF(state.cpf)) {\n errorHandler(new Error('Por favor, informe um CPF válido'))\n return false\n }\n\n if ((!state.fone || state.fone?.length <= 9) && !state.emailUrl) {\n return false\n }\n\n return true\n }\n\n const handleCloseModal = (): void => setOpen(false)\n\n return (\n \n \n\n \n Seja bem-vindo\n\n setOpenAreaInterest(true)}\n />\n handleChangeInput('nome', text)}\n value={state.nome}\n />\n\n handleChangeInput('fone', text)}\n value={state.fone}\n />\n\n handleChangeInput('emailUrl', text)}\n value={state.emailUrl}\n />\n\n handleChangeInput('cpf', text)}\n value={state.cpf}\n maxLength={17}\n />\n\n \n Endereço\n\n handleChangeInput('cep', text)}\n value={state.cep}\n maxLength={9}\n />\n\n handleChangeInput('endereco', text)}\n value={state.endereco}\n />\n \n handleChangeInput('numeroEndereco', text)}\n value={state.numeroEndereco}\n style={{ flex: 1 }}\n />\n\n handleChangeInput('complemento', text)}\n value={state.complemento}\n style={{ flex: 1 }}\n />\n \n \n handleChangeInput('cidade', text)}\n value={state.cidade}\n style={{ flex: 1 }}\n />\n handleChangeInput('estado', text)}\n value={state.estado}\n style={{ flex: 1 }}\n />\n \n handleChangeInput('bairro', text)}\n value={state.bairro}\n />\n \n\n \n \n \n \n \n \n setOpenAreaInterest(false)}\n onSelect={(id, data) => {\n handleChangeInput('codDEInteresse', id)\n setSelectedInterestArea(data)\n }}\n title={prospectConfigs?.descricao || 'Selecione'}\n items={interesetArea?.map(config => ({\n id: config.interesse.codInterno,\n descricao: config.descricao,\n isSelected: selectedInteresetArea.unidade === config.unidade &&\n selectedInteresetArea.interesse.codInterno === config.interesse.codInterno,\n data: config\n }))}\n />\n \n )\n}\n","import { atom } from 'recoil'\nimport { ProspectRegistrationParams } from '@/domain/usecases'\nimport { AreaInterest, EntidadeService } from '@/domain/models'\n\nexport const isOpenProspectRegistrationState = atom({\n key: 'isOpenProspectRegistrationState',\n default: false\n})\n\nexport const isOpenInterestAreaState = atom({\n key: 'isOpenInterestAreaState',\n default: false\n})\n\nexport const selectedInterestAreaState = atom({\n key: 'selectedInterestAreaState',\n default: {\n descricao: '',\n email: '',\n interesse: null as unknown as EntidadeService,\n unidade: 0\n }\n})\n\nexport const isLoadingProspectRegistrationState = atom({\n key: 'isLoadingProspectRegistrationState',\n default: false\n})\n\nexport const prospectRegistrationState = atom({\n key: 'prospectRegistrationState',\n default: {\n codDEInteresse: 0,\n codUnidade: 0,\n nome: '',\n cpf: '',\n emailUrl: '',\n email: '',\n fax: '',\n fone: '',\n numeroEndereco: '',\n endereco: '',\n bairro: '',\n cep: '',\n cidade: '',\n complemento: '',\n estado: ''\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\nimport { logoEmpresaState } from '@/presentation/components'\nimport { environment } from '@/main/config/env'\n\ntype LogoThemeProps = {\n height?: number\n width?: number\n minHeight?: number\n}\n\nexport const LogoTheme: React.FC = ({ width, height, minHeight }) => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const themeClient = getThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useRecoilState(logoEmpresaState)\n const isSvg = !logoEmpresa\n\n useEffect(() => {\n if ((themeClient.imageLogo) && (environment === 'production') && (logoEmpresa !== themeClient.imageLogo)) {\n getImage(themeClient.imageLogo, 'logo')\n .then(setLogoEmpresa)\n .catch(console.error)\n }\n }, [themeClient.imageLogo])\n\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center'\n },\n loginContent: {\n width: '100%',\n position: 'absolute',\n paddingHorizontal: 40,\n paddingVertical: 20,\n maxWidth: 428,\n justifyContent: 'space-between',\n alignItems: 'center',\n borderWidth: 1,\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n }\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n input: {\n width: '100%',\n outlineWidth: 0,\n backgroundColor: 'transparent'\n },\n form: {\n width: '100%',\n gap: 16\n },\n checkboxArea: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: 32,\n color: '#FFF',\n height: 'min-content'\n },\n buttonArea: {\n width: '100%',\n gap: 16\n },\n snackbar: {\n width: 428,\n maxWidth: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n bottom: 32\n },\n center: {\n textAlign: 'center'\n },\n footer: {\n fontSize: 10,\n position: 'absolute',\n width: '100%',\n bottom: 8,\n left: 0,\n textAlign: 'center'\n }\n})\n","import React, { useEffect, useState } from 'react'\nimport { GestureResponderEvent, SafeAreaView, TextInput as NativeTextInput } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { Checkbox, TextInput } from 'react-native-paper'\nimport { Authentication, ForgotPassword, GetUserByDocument, AuthenticationParams, AuthenticationAdmin, AuthenticationAdminParams, ProspectRegistration, ValidatePasswordRecovery, UpdateDefaultPassword } from '@/domain/usecases'\nimport { useAuth, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { BackgroundTheme, Box, Button, Divider, HStack, RecoveryPasswordC, SocialMidias, Text, VStack, socialMediaState } from '@/presentation/components'\nimport { prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\nimport { ModalForgotPassword, ModalUserSelect, ModalProspectRegistration, isLoadingState, isOpenForgotPasswordState, isOpenProspectRegistrationState, loginState, usersSelectState, isOpenUserSelect } from '@/presentation/pages/Login/components'\nimport { LogoTheme } from '@/presentation/components/LogoTheme'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype LoginAuthenticateProps = {\n username: string\n password: string\n}\n\ntype LoginProps = {\n navigation: any\n getUser: GetUserByDocument\n authentication: Authentication\n authenticationAdmin: AuthenticationAdmin\n forgotPassword: ForgotPassword\n prospectRegistration: ProspectRegistration\n validatePasswordRecovery: ValidatePasswordRecovery\n updateDefaultPassword: UpdateDefaultPassword\n}\n\nexport const Login: React.FC = ({\n navigation,\n getUser,\n authentication,\n authenticationAdmin,\n forgotPassword,\n prospectRegistration,\n validatePasswordRecovery,\n updateDefaultPassword\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { login, getSaveUser, saveUser } = useAuth()\n const { getThemeClient } = useThemeClient()\n const [state, setState] = useRecoilState(loginState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isSelected, setSelection] = useState(false)\n const setModalUserSelect = useSetRecoilState(usersSelectState)\n const setOpenUserSelect = useSetRecoilState(isOpenUserSelect)\n const setOpenForgotPassword = useSetRecoilState(isOpenForgotPasswordState)\n const setOpen = useSetRecoilState(isOpenProspectRegistrationState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const prospectInterestArea = useRecoilValue(prospectInterestAreaState)\n const socialMedia = useRecoilValue(socialMediaState)\n const reset = useResetRecoilState(loginState)\n\n const savedUser = getSaveUser()\n const themeClient = getThemeClient()\n\n const handleChangeInput = (name: keyof LoginAuthenticateProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleError = (error: Error): void => {\n notify.show(error.message, { variant: 'error' })\n }\n\n const handleSubmit = (event?: GestureResponderEvent): void => {\n event?.preventDefault()\n\n if (!state.username) {\n handleError(new Error('O usuário deve ser informado'))\n return\n }\n\n if (!state.password) {\n handleError(new Error('A senha deve ser informada'))\n return\n }\n\n const dataAuth: AuthenticationParams = {\n username: state.username,\n password: state.password\n }\n\n const accessWithAdministrator = dataAuth.username.toLocaleLowerCase().endsWith('@insidesistemas.com.br')\n if (accessWithAdministrator) {\n loginWithAdministrator({ Email: dataAuth.username, Senha: dataAuth.password })\n } else {\n const accessWithDocument = dataAuth.username.replace(/\\.|-/gm, '').replace(/\\D/g, '').length > 10\n if (accessWithDocument || dataAuth.username.includes('@')) {\n loginWithDocument(dataAuth)\n } else {\n loginWithCode(dataAuth)\n }\n }\n }\n\n const loginWithCode = (params: AuthenticationParams): void => {\n setLoading(true)\n authentication\n .auth(params)\n .then(async authToken => {\n login(authToken)\n reset()\n if (params.username.toUpperCase() !== 'ADMIN') {\n saveUser({\n username: isSelected ? params.username : '',\n saveUsername: isSelected\n })\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const loginWithDocument = (params: AuthenticationParams): void => {\n setLoading(true)\n getUser\n .getUsersByDocument({\n usuario: params.username,\n senha: params.password\n })\n .then(clients => {\n if (clients?.length === 1) {\n loginWithCode({\n username: clients[0].codCliente.toString(),\n password: params.password\n })\n } else {\n setOpenUserSelect(true)\n setModalUserSelect(clients)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const loginWithAdministrator = (params: AuthenticationAdminParams): void => {\n setLoading(true)\n authenticationAdmin\n .auth(params)\n .then(async (authToken) => {\n login(authToken)\n reset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (savedUser.saveUsername) {\n setState(currentState => ({ ...currentState, username: savedUser.username }))\n setSelection(true)\n }\n }, [])\n\n return (\n \n \n\n \n \n \n Portal do Cliente\n handleChangeInput('username', text)}\n value={state.username}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n handleChangeInput('password', text)}\n value={state.password}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n \n \n Salvar usuário\n \n setSelection(!isSelected)}\n />\n \n \n \n setOpenForgotPassword(true)}\n >\n Esqueci minha senha\n \n \n \n \n \n {prospectConfigs.ativo && prospectInterestArea.length > 0 &&\n \n \n setOpen(true)}\n >\n Ainda não é cliente? Cadastre-se aqui!\n \n \n }\n \n \n \n \n \n \n Desenvolvido por Inside Sistemas | v{version}\n \n )\n}\n","import React from 'react'\nimport { Login } from '@/presentation/pages/Login'\nimport { makeAuthentication, makeGetUser, makeForgotPassword, makeAuthenticationAdmin, makeProspectRegistration, makeValidatePasswordRecovery, makeUpdateDefaultPassword } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\n\nexport const makeLoginFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderModel } from '@/domain/models'\n\nexport const isLoadingServiceOrdersState = atom({\n key: 'isLoadingServiceOrdersState',\n default: true\n})\n\nexport const serviceOrdersState = atom({\n key: 'serviceOrdersState',\n default: [] as ServiceOrderModel[]\n})\n\nexport const serviceOrdersConfigsState = atom({\n key: 'serviceOrdersConfigsState',\n default: {\n bloqueiaAberturaLimite: false,\n portalExibeMensagem: false,\n exibirOsFechadas: false,\n portalMensagem: ''\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as CircleIcon } from '@expo/vector-icons/FontAwesome'\nexport { default as MoreIcon } from '@expo/vector-icons/Feather'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n maxWidth: 600,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box, Chip, Divider, HStack, Text, VStack } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, CircleIcon, MarkerIcon } from './styles'\n\ntype CardOsProps = {\n serviceOrder: ServiceOrderModel\n dateAdapter: DateAdapter\n}\n\nexport const CardOs: React.FC = ({\n serviceOrder,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { getAddress } = useAuth()\n const { removeNewLines } = useFormat()\n const { isMobile } = useMediaQueries()\n const setOsView = useSetRecoilState(serviceOrderViewState)\n\n const address = getAddress(serviceOrder.codEndereco)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && { flex: 1 }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n const makeHeader = (): JSX.Element => {\n return (\n \n \n {serviceOrder.solicitante\n ? serviceOrder.solicitante\n : 'Solicitante não informado'\n }\n \n \n Nº {serviceOrder.ordem.toString().padStart(6, '0')}\n \n \n \n )\n }\n\n return (\n \n {makeHeader()}\n \n \n \n {'Data Abertura: '}\n \n {dateAdapter.format(serviceOrder.dataAbertura, 'DD/MM/yyyy HH:mm')}\n \n \n {!!serviceOrder.dataFechamento &&\n serviceOrder.status !== ServiceOrderStatus.Aberta &&\n \n {'Data Fechamento: '}\n \n {dateAdapter.format(serviceOrder.dataFechamento, 'DD/MM/yyyy HH:mm')}\n \n \n }\n {serviceOrder.observacoes &&\n \n {'Observações: '}\n \n {removeNewLines(serviceOrder.observacoes)\n .substring(0, GetServiceOrders.RN.OBSERVATION_MAX_LENGTH)\n }\n \n \n }\n \n {address &&\n \n {`${address.endereco.toUpperCase()}, ${address.numero.toUpperCase()} - ${address.bairro.toUpperCase()}`}\n \n }\n \n \n \n \n {'Status: '}\n \n \n setOsView(currentState => ({ ...currentState, currentOs: serviceOrder }))}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenServiceOrdersFiltersState, serviceOrdersFiltersState } from '@/presentation/pages/ServiceOrders/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n handleAddNewOs: () => void\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter, handleAddNewOs }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const setOpen = useSetRecoilState(isOpenServiceOrdersFiltersState)\n const filters = useRecoilValue(serviceOrdersFiltersState)\n\n const themeClient = getThemeClient()\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n const situation = {\n Todas: 'Todas',\n 'Em Aberto': isMobile ? 'Abertas' : 'Somente Abertas',\n Fechadas: isMobile ? 'Fechadas' : 'Somente Fechadas'\n }[filters.situacao]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n {!isMobile &&\n }\n title='Abrir Ordem de Serviço'\n testID='cadastrar-os'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={handleAddNewOs}\n />\n }\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusOsFilter, serviceOrdersFiltersState, serviceOrdersConfigsState, isLoadingServiceOrdersState, isOpenServiceOrdersFiltersState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport function SideFilters ({ dateAdapter, getServiceOrders }: SideFiltersProps): JSX.Element {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const [isOpen, setOpen] = useRecoilState(isOpenServiceOrdersFiltersState)\n const setServiceOrders = useSetRecoilState(serviceOrdersState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }, [])\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n \n \n \n {serviceOrdersConfigs.exibirOsFechadas &&\n <>\n \n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenServiceOrdersFiltersState = atom({\n key: 'isOpenServiceOrdersFiltersState',\n default: false\n})\n\nexport const serviceOrdersFiltersState = atom({\n key: 'serviceOrdersFiltersState',\n default: {\n situacao: 'Em Aberto' as 'Em Aberto' | 'Fechadas' | 'Todas',\n dataInicio: '',\n dataFim: ''\n }\n})\n","import * as React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { serviceOrdersFiltersState, statusOSsState } from '@/presentation/pages/ServiceOrders/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusOsFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const statusOSs = useRecoilValue(statusOSsState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Em Aberto' | 'Fechadas' | 'Todas'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusOSs.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Em Aberto' | 'Fechadas' | 'Todas')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusOSsState = atom({\n key: 'selectStatusOSsState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Fechadas', value: 'Fechadas' },\n { _id: 'Em Aberto', value: 'Em Aberto' }\n ]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ClientAddress, ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, TextInput, ModalBase, HStack, Loading, Select } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { addNewOsState, isLoadingAddNewOS, isOpenAddNewOS, isOpenAddressNewOSState, serviceOrdersConfigsState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype AddNewOsProps = {\n solicitante: string\n observacoes: string\n}\n\ntype ModalAddNewOsProps = {\n addNewOs: AddNewOs\n dateAdapter: DateAdapter\n}\n\nexport const ModalAddNewOs: React.FC = ({ addNewOs, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [addNewOS, setAddNewOs] = useRecoilState(addNewOsState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [isOpen, setOpen] = useRecoilState(isOpenAddNewOS)\n const serviceOrdersConfigs = useRecoilValue(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAddNewOS)\n const [isOpenAddressNewOS, setOpenAddressNewOS] = useRecoilState(isOpenAddressNewOSState)\n const resetAddNewOs = useResetRecoilState(addNewOsState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof AddNewOsProps, value: string): void => {\n setAddNewOs(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleCreateOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const addNewOsParams: AddNewOsParams = {\n cliente: client.codCliente,\n solicitante: addNewOS.solicitante,\n observacoes: addNewOS.observacoes,\n codEndereco: addNewOS.codEndereco,\n empresa: client.empresa,\n enviaListaChave: client.enviaListaChave,\n modalidade: client.modalidade,\n codigoUnidade: client.unidade\n }\n\n addNewOs\n .add(addNewOsParams)\n .then(codigo => {\n if (codigo) {\n successNewOs(addNewOsParams, codigo)\n setOpen(false)\n resetAddNewOs()\n } else {\n throw new Error('Não foi possível gravar a OS!')\n }\n })\n .catch(handleError)\n .finally(handleClose)\n }\n\n const successNewOs = (createSacParams: AddNewOsParams, codigo: number): void => {\n const listNewServiceOrders = [\n {\n ...createSacParams as unknown as ServiceOrderModel,\n ordem: codigo,\n status: ServiceOrderStatus.Aberta,\n dataAbertura: dateAdapter.today().toString()\n },\n ...serviceOrders\n ]\n setServiceOrders(listNewServiceOrders)\n notify.success('Ordem de serviço gravada com sucesso')\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setLoading(false)\n resetAddNewOs()\n }\n\n const formatAddress = (addressCode: number): string | undefined => {\n const address = client.enderecoAlternativo?.find(endereco => endereco.codInterno === addressCode)\n return address?.endereco && `${address.endereco}, ${address.numero} - ${address.bairro}`\n }\n\n return (\n \n {isLoading\n ? \n : \n Criar nova OS\n {serviceOrdersConfigs.portalExibeMensagem &&\n serviceOrdersConfigs.portalMensagem &&\n \n \n {serviceOrdersConfigs.portalMensagem}\n \n }\n\n handleChangeInput('solicitante', text)}\n value={addNewOS.solicitante}\n maxLength={30}\n />\n\n {!!client.enderecoAlternativo.length &&\n setOpenAddressNewOS(true)}\n style={{ minWidth: '100%' }}\n />\n }\n\n handleChangeInput('observacoes', text)}\n value={addNewOS.observacoes}\n multiline\n numberOfLines={5}\n />\n\n \n \n \n \n\n {!!client.enderecoAlternativo.length &&\n setOpenAddressNewOS(false)}\n items={client.enderecoAlternativo?.map(endereco => ({\n id: endereco.codInterno,\n descricao: formatAddress(endereco.codInterno) ?? '',\n data: endereco,\n isSelected: endereco.codInterno === addNewOS.codEndereco\n }))}\n onSelect={(addressCode, _) => {\n setAddNewOs(currentState => ({ ...currentState, codEndereco: addressCode }))\n }}\n />\n }\n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingAddNewOS = atom({\n key: 'isLoadingAddNewOS',\n default: false\n})\n\nexport const isOpenAddNewOS = atom({\n key: 'isOpenAddNewOS',\n default: false\n})\n\nexport const isOpenAddressNewOSState = atom({\n key: 'isOpenAddressNewOS',\n default: false\n})\n\nexport const addNewOsState = atom({\n key: 'addNewOs',\n default: {\n solicitante: '',\n observacoes: '',\n codEndereco: 0\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { GetOsAttendance } from '@/domain/usecases'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, Chip, HStack, Divider, VStack, Loading } from '@/presentation/components'\nimport { OsAttendandes, isLoadingOsViewState, serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, OSIcon, MarkerIcon } from './styles'\n\ntype ModalServiceOrderViewProps = {\n getOsAttendance: GetOsAttendance\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\n\nexport const ModalOsView: React.FC = ({\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getAddress } = useAuth()\n const notify = useNotify()\n const [serviceOrder, setState] = useRecoilState(serviceOrderViewState)\n const [isLoading, setLoading] = useRecoilState(isLoadingOsViewState)\n\n const address = getAddress(serviceOrder.currentOs.codEndereco)\n\n useEffect(() => {\n if (serviceOrder.currentOs?.codInterno) {\n setLoading(true)\n\n getOsAttendance\n .getAttendences({ codigoOs: serviceOrder.currentOs.codInterno })\n .then(attendances => setState(currentState => ({ ...currentState, attendances })))\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n }, [])\n\n const handleClose = (): void => {\n setState(currentState => ({\n ...currentState,\n currentOs: null as unknown as ServiceOrderModel,\n attendances: []\n }))\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n return (\n \n \n \n \n \n \n \n \n Solicitante\n {serviceOrder.currentOs?.solicitante.toUpperCase()}\n \n \n \n Status\n \n \n \n Data Abertura\n \n {dateAdapter.format(serviceOrder.currentOs?.dataAbertura, 'DD/MM/yyyy HH:mm')}\n \n \n \n \n \n Observações\n \n {serviceOrder.currentOs?.observacoes}\n \n \n \n \n \n \n {address?.identificacao.toUpperCase()}\n \n {!!address &&\n (isMobile\n ? `${address.endereco}, ${address.numero} - ${address.bairro}`\n : `${address.endereco}, ${address.numero} - ${address.bairro} - ${address.cidade}/${address.estado} - ${address.cep}`\n )}\n \n \n \n \n \n {!isMobile && (\n isLoading ? : \n )}\n \n \n \n \n \n )\n}\n","import { OsAttendanceModel, ServiceOrderModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingOsViewState = atom({\n key: 'isLoadingOsViewState',\n default: false\n})\n\nexport const serviceOrderViewState = atom({\n key: 'serviceOrderViewState',\n default: {\n currentOs: null as unknown as ServiceOrderModel,\n attendances: [] as OsAttendanceModel[]\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n attendancesContainer: {\n flexDirection: 'row',\n marginTop: 16,\n maxHeight: '30vh'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n },\n titleAttendances: {\n fontWeight: '700',\n marginBottom: 8,\n fontSize: 12\n },\n attendancesText: {\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { useFormat } from '@/presentation/hooks'\nimport { VStack, HStack, Box, Text, Divider } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype OsAttendandesProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsAttendandes: React.FC = ({ dateAdapter }) => {\n const serviceOrder = useRecoilValue(serviceOrderViewState)\n const { removeNewLines } = useFormat()\n\n return (\n \n {!!serviceOrder.attendances.length && Atendimentos}\n {serviceOrder.attendances?.map((attendance, index) => (\n \n \n {'Técnico: '}\n {attendance.nomeTecnico}\n \n \n \n {'Início: '}\n {dateAdapter.format(attendance.dataInicio, 'DD/MM/yyyy HH:mm')}\n \n \n {'Término: '}\n {dateAdapter.format(attendance.dataTermino, 'DD/MM/yyyy HH:mm')}\n \n \n \n Observações\n {removeNewLines(attendance.observacoes)}\n \n \n \n ))}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, GetOsAttendance, GetServiceOrders } from '@/domain/usecases'\nimport { ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { serviceOrdersConfigsState, SideFilters, ModalAddNewOs, ModalOsView, serviceOrderViewState, serviceOrdersFiltersState, CardOs, isLoadingServiceOrdersState, serviceOrdersState, isOpenServiceOrdersFiltersState, FiltersChipPanel, isOpenAddNewOS } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype ServiceOrdersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n addNewOs: AddNewOs\n getOsAttendance: GetOsAttendance\n}\n\nexport const ServiceOrders: React.FC = ({\n getServiceOrders,\n addNewOs,\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { currentOs } = useRecoilValue(serviceOrderViewState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const setOpenAddNewOs = useSetRecoilState(isOpenAddNewOS)\n const filters = useRecoilValue(serviceOrdersFiltersState)\n const setOpen = useSetRecoilState(isOpenServiceOrdersFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleAddNewOs = useCallback((): void => {\n if (serviceOrdersConfigs.bloqueiaAberturaLimite) {\n const existWithOpenStatus = serviceOrders?.some(os => os.status === ServiceOrderStatus.Aberta)\n if (existWithOpenStatus) {\n notify.show('Já existe uma Ordem de Serviço aberta para você, não é possível abrir outra no momento.', { variant: 'error' })\n return\n }\n }\n\n setOpenAddNewOs(true)\n }, [serviceOrdersConfigs.bloqueiaAberturaLimite])\n\n return (\n \n \n \n \n }\n openFilters={() => setOpen(true)}\n />\n \n \n {serviceOrders?.map((serviceOrder, index) =>\n \n )}\n \n \n \n {isMobile &&\n \n } color={themeClient.mainColor}\n />\n \n }\n {!isLoading && }\n {!!currentOs && }\n \n )\n}\n","import React from 'react'\nimport { ServiceOrders } from '@/presentation/pages/ServiceOrders'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddNewOs, makeGetOsAttendance, makeGetServiceOrders } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeServiceOrdersFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingHomeState',\n default: false\n})\n","import React, { useMemo } from 'react'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { Box, HStack, Text } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\n\ntype ItemMenuProps = {\n page: keyof MenuAccessPermissionsConfigs\n navigation: any\n}\n\nconst colorsPage = {\n boleto: '#ed7809',\n os: '#14a10a',\n sac: '#cf0707',\n notaFiscal: '#d6ba06',\n monitoramento: '#08a8dd',\n cartao: '#5209fb',\n aceiteDigital: '#0a41ae',\n viagem: '#9b0aae',\n telefonesUteis: '#05d3b7',\n documentosUteis: '#d7fb09',\n rastreamento: '#0bfc03',\n contrato: '#fc4850'\n}\n\nexport const ItemMenu: React.FC = ({ page, navigation }) => {\n const theme = useTheme()\n const { isMobile, width } = useMediaQueries()\n\n const iconPage = useMemo(() => ({\n boleto: ,\n os: ,\n sac: ,\n notaFiscal: ,\n monitoramento: ,\n rastreamento: ,\n cartao: ,\n aceiteDigital: ,\n viagem: ,\n telefonesUteis: ,\n documentosUteis: ,\n contrato: \n }[page]), [page])\n\n const iconButton = (): JSX.Element =>\n \n \n {iconPage}\n \n \n\n const title = {\n boleto: 'Financeiro',\n os: isMobile ? 'Ordens' : 'Ordens de Serviço',\n sac: 'SAC',\n notaFiscal: isMobile ? 'Notas' : 'Notas Fiscais',\n monitoramento: 'Monitoramento',\n rastreamento: 'Rastreamento',\n cartao: 'Cartão',\n aceiteDigital: isMobile ? 'Aceite' : 'Aceite Digital',\n viagem: isMobile ? 'Viagem' : 'Aviso de Viagem',\n telefonesUteis: isMobile ? 'Telefones' : 'Telefones Úteis',\n documentosUteis: isMobile ? 'Arquivos' : 'Arquivos Úteis',\n contrato: isMobile ? 'Contrato' : 'Meu Contrato'\n }[page]\n\n const route = {\n boleto: NavigationRoute.Financial,\n os: NavigationRoute.ServiceOrders,\n sac: NavigationRoute.SAC,\n notaFiscal: NavigationRoute.Invoices,\n monitoramento: NavigationRoute.Monitoring,\n rastreamento: NavigationRoute.Track,\n cartao: NavigationRoute.CreditCard,\n aceiteDigital: NavigationRoute.DigitalAccepts,\n viagem: NavigationRoute.TravelAlert,\n telefonesUteis: 'Telefones Úteis',\n documentosUteis: 'Arquivos Úteis',\n contrato: NavigationRoute.Contract\n }[page]\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile\n ? {\n maxHeight: 180,\n maxWidth: 180,\n minHeight: 140\n }\n : {\n flex: 0.5,\n minHeight: 120\n }),\n minWidth: isMobile ? (width - 56) / 2 : '30%',\n backgroundColor: colorsPage[page]\n }\n\n return (\n navigation.navigate(route)}\n testID={`home-button-${title}`}\n >\n \n {iconButton()}\n \n \n \n {title}\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n paddingVertical: 18,\n borderRadius: 16,\n flexWrap: 'wrap'\n },\n title: {\n fontWeight: '500',\n paddingHorizontal: 18\n },\n iconContainer: {\n borderRadius: 9,\n backgroundColor: '#FFFFFF',\n marginLeft: 18\n },\n iconContent: {\n borderRadius: 8,\n paddingHorizontal: 12,\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n }\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n ...layoutStyles.pageContent,\n maxWidth: 740\n },\n content: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 18,\n alignItems: 'center',\n justifyContent: 'flex-start'\n },\n itemUser: {\n marginRight: 24,\n marginBottom: 12,\n alignItems: 'flex-end',\n alignSelf: 'flex-end',\n flex: 1\n }\n})\n","import React from 'react'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { Box, Loading } from '@/presentation/components'\nimport { ItemMenu, isLoadingState } from '@/presentation/pages/Home/components'\nimport { styles } from './styles'\nimport { useMediaQueries, useAuth } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\n\nconst ITEMS_EXCLUDES = [\n 'envialista',\n 'telefonesuteis',\n 'documentosuteis',\n 'dadosconta',\n 'seguro',\n 'evento',\n 'atualizaautomaticocartao',\n 'indicarprospect'\n]\n\ntype MenuProps = {\n navigation: any\n}\n\nexport const Menu: React.FC = ({ navigation }) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const isLoading = useRecoilValue(isLoadingState)\n\n const client = getClient()\n\n const itemsMenu = client?.portal && Object\n .keys(client.portal)\n .filter((page: keyof MenuAccessPermissionsConfigs) => !ITEMS_EXCLUDES.includes(page.toLowerCase()) && !!client.portal[page])\n\n const makeItemsMenu = (): JSX.Element =>\n \n {itemsMenu?.map((page: keyof MenuAccessPermissionsConfigs, index: number) =>\n \n )}\n \n\n return (\n \n {isLoading || !client\n ? \n : makeItemsMenu()\n }\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetClientByCode, MetricsLogin } from '@/domain/usecases'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { isLoadingState, Menu } from '@/presentation/pages/Home/components'\nimport { authenticationState, PhoneModal } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { version } from '../../../../package.json'\n\ntype HomeProps = {\n getClientByCode: GetClientByCode\n navigation: any\n metricsLogin: MetricsLogin\n dateAdapter: DateAdapter\n}\n\nexport const Home: React.FC = ({\n getClientByCode,\n navigation,\n metricsLogin,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const { setClient, getCurrentClient } = useAuth()\n const setLoading = useSetRecoilState(isLoadingState)\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n\n const currentClient = getCurrentClient()\n\n useFocusEffect(\n useCallback(() => {\n if (parseInt(currentClient, 10) > 0) {\n setLoading(true)\n getClientByCode\n .getByCode({ cliCodigo: parseInt(currentClient, 10) })\n .then(client => {\n setClient(client)\n\n if (autentication.registerLogin) {\n void metricsLogin\n .register({\n dataOcorrencia: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DDTHH:mm:ssZ'),\n email: client.email,\n unidade: client.unidade,\n usuario: client.codCliente.toString(),\n versao: version\n })\n .then(() => setAuthentication(currentState => ({ ...currentState, registerLogin: false })))\n .catch(console.error)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [currentClient])\n )\n\n return (\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Home } from '@/presentation/pages/Home'\nimport { makeGetClientByCode, makeMetricsLogin } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeHomeFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { SaveCreditCard, GetCreditCard, GetCreditCardParams, SaveCreditCardParams } from '@/domain/usecases'\nimport { CardFlagsTypes, cardMaskByFlag } from '@/domain/models'\nimport { useAuth, useCreditCard, useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, creditCardState, CreditCard, isEditableState, isLoadingState, isOpenEditConfirmationState, ModalModalEditConfirmation } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\ntype CartaoProps = {\n getCard: GetCreditCard\n saveCard: SaveCreditCard\n}\n\nexport const Cartao: React.FC = ({ getCard, saveCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { getCreditCardType } = useCreditCard()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isEditable, setEditable] = useRecoilState(isEditableState)\n const setOpenEditConfirmation = useSetRecoilState(isOpenEditConfirmationState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n setEditable(false)\n\n const getCardParams: GetCreditCardParams = {\n codCliente: client.codCliente\n }\n\n getCard\n .getByClient(getCardParams)\n .then((card) => {\n if (card) {\n setCreditCard(card)\n setEditable(false)\n } else {\n setEditable(true)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const isValidDataCard = useCallback((): boolean => {\n if (\n !creditCard.nome ||\n !creditCard.numero ||\n !creditCard.expiracao ||\n creditCard.expiracao.length < 4 ||\n !creditCard.expiracao.includes('/') ||\n !creditCard.ccv ||\n creditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }, [creditCard])\n\n const handleSaveCreditCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const saveCardParams: SaveCreditCardParams = {\n codCliente: client.codCliente,\n email: client.email,\n unidade: client.unidade,\n type: getCreditCardType(creditCard.numero),\n mask: cardMaskByFlag[creditCard.type],\n ccv: creditCard.ccv,\n expiracao: creditCard.expiracao,\n nome: creditCard.nome,\n numero: creditCard.numero\n }\n\n if (isValidDataCard()) {\n setLoading(true)\n\n saveCard\n .save(saveCardParams)\n .then(notify.show)\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados do cartão devem ser informados'))\n }\n }\n\n const handleResetCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n {(isLoading || !isEditable) &&\n { setOpenEditConfirmation(true) }}\n />\n }\n {(!isLoading && isEditable) &&\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Cartao } from '@/presentation/pages/Cartao'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetCreditCard, makeSaveCreditCard } from '@/main/factories/usecases'\n\nexport const makeCardFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { AcceptDigitalModel } from '@/domain/models'\n\nexport const isLoadingAcceptDigitalState = atom({\n key: 'isLoadingAcceptDigitalState',\n default: true\n})\n\nexport const acceptDigitalState = atom({\n key: 'acceptDigitalState',\n default: [] as AcceptDigitalModel[]\n})\n\nexport const currentAcceptDigitalState = atom({\n key: 'currentAcceptDigitalState',\n default: -1\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 600,\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n gap: 8\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500'\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, Pressable } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { theme } from '@/presentation/styles'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Text, Chip, VStack, Clipboard, MenuActions, IconButton, Menu, Box, Divider, HStack } from '@/presentation/components'\nimport { currentAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype CardAcceptDigitalProps = {\n accept: AcceptDigitalModel\n dateAdapter: DateAdapter\n openUrlDocAccept: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const CardAcceptDigital: React.FC = ({\n accept,\n dateAdapter,\n openUrlDocAccept,\n openDocumentAccept\n}) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [currentAcceptDigital, setCurrentAcceptDigital] = useRecoilState(currentAcceptDigitalState)\n\n const isAuthorized = accept.statusAceite === 'Autorizado'\n\n const handleOpenUrlDocument = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const viewParams = {\n statusAceite: accept.statusAceite,\n urlAceite: accept.urlAceite\n }\n\n openUrlDocAccept\n .view(viewParams)\n .then(() => notify.show('O aceite digital foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleOpenDocumentAccept = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const openParams: OpenDocumentAcceptParams = {\n statusAceite: accept.statusAceite,\n codigoAceite: accept.idAceite\n }\n\n openDocumentAccept\n .open(openParams)\n .then(() => notify.show('O documento foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleCopyHash = (hash: string): void => {\n Clipboard.setString(hash)\n notify.show('Hash do Aceite Digital copiado com sucesso')\n }\n\n const handleOpenMenu = (idAceite: number): void => {\n setCurrentAcceptDigital(idAceite)\n }\n\n const handleCloseMenu = useCallback((): void => {\n setCurrentAcceptDigital(-1)\n }, [])\n\n const colorType = {\n Orçamento: theme.colors.primary,\n Contrato: theme.colors.info,\n Aditivo: theme.colors.pink,\n default: theme.colors.primary\n }[accept.tipoAceite]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const statusChipContainer = {\n ...styles,\n backgroundColor: !isAuthorized ? theme.colors.secondary : theme.colors.success\n }\n\n return (\n \n \n \n {accept.emailEnvio}\n \n = 0 && currentAcceptDigital === accept.idAceite}\n onDismiss={handleCloseMenu}\n anchor={\n handleOpenMenu(accept.idAceite)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }\n testID='aceite-digital-opcoes'\n />\n }>\n {isAuthorized\n ? <>\n }\n />\n }\n />\n \n : }\n />\n }\n \n \n\n \n \n \n \n \n {'Tipo '}\n \n \n \n \n \n {'Status '}\n \n \n \n \n \n \n {'Envio: '}\n \n {dateAdapter.format(accept.dataEnvio, 'DD/MM/YYYY HH:mm:ss')}\n \n {\n accept.aceiteHashProcesso !== '' &&\n \n \n \n \n {'Hash: '}\n \n {accept.aceiteHashProcesso}\n \n handleCopyHash(accept.aceiteHashProcesso)} testID='copiar-hash'>\n \n \n \n }\n \n \n )\n}\n","import React from 'react'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { acceptDigitalFiltersState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n const filters = useRecoilValue(acceptDigitalFiltersState)\n\n const period = dateAdapter.format(filters.dtInicial, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dtFinal, 'DD/MM/YYYY')\n\n const situation = {\n Pendentes: 'Somente Pendentes',\n Autorizados: 'Somente Autorizados',\n Ambos: 'Todos'\n }[filters.status]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetDigitalAccepts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { SelectStatusAcceptFilter, acceptDigitalFiltersState, acceptDigitalState, isLoadingAcceptDigitalState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\n\ntype DateParams = {\n dtInicial: string\n dtFinal: string\n}\n\nexport type AcceptFilters = {\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n dtInicial: string\n dtFinal: string\n}\n\ntype SideFiltersProps = {\n getAcceptDigital: GetDigitalAccepts\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getAcceptDigital, dateAdapter }: SideFiltersProps) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenAcceptDigitalFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const setAccepts = useSetRecoilState(acceptDigitalState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(filters.dtInicial, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dtFinal, 'YYYY-MM-DD'),\n status: filters.status\n }\n\n setLoading(true)\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handlerError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dtInicial', date ?? dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dtFinal', date ?? dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { GetDigitalAccepts } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenAcceptDigitalFiltersState = atom({\n key: 'isOpenAcceptDigitalFiltersState',\n default: false\n})\n\nexport const acceptDigitalFiltersState = atom({\n key: 'filtersAcceptDigital',\n default: {\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: '',\n dtFinal: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { acceptDigitalFiltersState, statusAcceptState } from '@/presentation/pages/AceiteDigital/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusAcceptFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const statusAccept = useRecoilValue(statusAcceptState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Ambos' | 'Autorizados' | 'Pendentes'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, status: selectedStatus }))\n }\n\n return (\n <>\n {\n statusAccept.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Ambos' | 'Autorizados' | 'Pendentes')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusAcceptState = atom({\n key: 'selectStatusAcceptState',\n default: [\n { _id: 'Ambos', value: 'Ambos' },\n { _id: 'Autorizados', value: 'Autorizados' },\n { _id: 'Pendentes', value: 'Pendentes' }\n ]\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetDigitalAccepts, OpenDocumentAccept, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { SideFilters, acceptDigitalState, CardAcceptDigital, FiltersChipPanel, isOpenAcceptDigitalFiltersState, isLoadingAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype AcceptDigitalProps = {\n dateAdapter: DateAdapter\n getAcceptDigital: GetDigitalAccepts\n getDocAcceptDigital: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const AcceptDigital: React.FC = ({\n dateAdapter,\n getAcceptDigital,\n openDocumentAccept,\n getDocAcceptDigital\n}: AcceptDigitalProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [accepts, setAccepts] = useRecoilState(acceptDigitalState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD'),\n status: GetDigitalAccepts.RN.DEFAULT_STATUS\n }\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, []))\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n \n }\n text='Aceite Digital'\n openFilters={handleOnFilter}\n />\n \n \n {accepts?.map(accept => (\n \n ))}\n \n \n \n \n )\n}\n","import React from 'react'\nimport { AcceptDigital } from '@/presentation/pages/AceiteDigital'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetAcceptDigital, makeOpenDocumentAcceptFactory, makeOpenUrlDocAcceptFactory } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeAcceptDigitalFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { NFModel } from '@/domain/models'\n\nexport const isLoadingNfState = atom({\n key: 'isLoadingNfState',\n default: true\n})\n\nexport const isLoadingOpenNfState = atom({\n key: 'isLoadingOpenNfState',\n default: false\n})\n\nexport const nfsConfigState = atom({\n key: 'nfsConfigState',\n default: {\n ocultaInfos: false,\n ocultaLink: false\n }\n})\n\nexport const nfsState = atom({\n key: 'nfsState',\n default: [] as NFModel[]\n})\n\nexport const nfState = atom({\n key: 'nfState',\n default: [] as NFModel[]\n})\n\nexport const leaseReceiptState = atom({\n key: 'leaseReceiptState',\n default: [] as NFModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n content: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n})\n","import React, { useCallback, useState } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { ActivityIndicator, Box, CardBase, dateAdapterAtom, IconButton, Menu, MenuActions, Text } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { isLoadingOpenNfState, nfsConfigState } from '../atom'\nimport { styles } from './styles'\n\ntype CardNfseProps = {\n nfse: NFModel\n openNfse: OpenNfse\n index: number\n}\n\nexport const CardNfse: React.FC = ({ nfse, openNfse, index }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const nfsConfigs = useRecoilValue(nfsConfigState)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [isLoadingOpenNfse, setLoadingOpenNfse] = useRecoilState(isLoadingOpenNfState)\n const handleError = useErrorHandler()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenNfse = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoadingOpenNfse(true)\n const openNfseParams: OpenNfseParams = {\n codEmpresa: nf.empresa,\n codUnidade: nf.unidade,\n numeroRPS: nf.notaNumero,\n serieRps: nf.notaSerie,\n linkAutenticidade: nf.linkAutenticidade,\n utilizarDevExpress: nf.utilizarDevExpress\n }\n\n openNfse\n .open(openNfseParams)\n .then(() => notify.show(`A Nfse ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoadingOpenNfse(false))\n }, [])\n\n return (\n \n \n {nfse.notaNumeroNFSE}/{nfse.notaSerie}\n {!isLoadingOpenNfse &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n testID='notas-servicos-opcoes'\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }>\n }>\n {((nfse.linkAutenticidade || nfse.utilizarDevExpress) && !nfsConfigs.ocultaLink)\n ? handleOpenNfse(event, nfse)}\n title=\"Abrir Link NFSe\"\n testID='notas-servicos-abrir-nfse'\n leadingIcon={props => }\n />\n : <>\n }\n {nfse.linkConsultaNotaPortal\n ? window.open(nfse.linkConsultaNotaPortal, '_blank')}\n title=\"Link para consulta da NFSe\"\n testID='notas-servicos-consulta'\n leadingIcon={props => }\n />\n : <>\n }\n \n }\n \n {(isLoadingOpenNfse && currentIndex === index)\n ? \n : <>\n Valor: {formatCurrency(nfse.notaValor)}\n Emissão: {dateAdapter.format(dateAdapter.parse(nfse.notaData), 'DD/MM/YYYY')}\n \n }\n \n )\n}\n","import React from 'react'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenNfsFiltersState, nfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenNfsFiltersState)\n const filters = useRecoilValue(nfsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n return (\n \n setOpen(true)}\n />\n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n ...layoutStyles.pageContent,\n marginVertical: 0,\n marginHorizontal: 'auto'\n },\n cardArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n bold: {\n fontWeight: '600'\n },\n title: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n emptyNf: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n gap: 16\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, PageHeader, CardList, CardBase } from '@/presentation/components'\nimport { FiltersChipPanel, isLoadingNfState, isOpenNfsFiltersState, leaseReceiptState } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype LeaseReceiptProps = {\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const LeaseReceipt: React.FC = ({ openLeaseReceipt, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const handleError = useErrorHandler()\n const leaseReceipts = useRecoilValue(leaseReceiptState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenLeaseReceipt = useCallback((event: GestureResponderEvent, recibo: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openLeaseReceiptParams: OpenLeaseReceiptParams = {\n codigoRecibo: recibo.nfNumeroNota\n }\n\n openLeaseReceipt\n .open(openLeaseReceiptParams)\n .then(() => notify.show(`O recibo de locação Nº ${recibo.notaNumero} foi aberto em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Recibos de Locação'\n openFilters={handleOnFilter}\n />\n \n \n {leaseReceipts?.map((recibo, index) => (\n \n \n {recibo.notaNumero.toString().padStart(6, '')}/{recibo.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n testID='notas-recibo-locacao-opcoes'\n style={{ width: 24, height: 24 }}\n icon={(props: any) => }>\n }\n >\n handleOpenLeaseReceipt(event, recibo)}\n title=\"Visualizar Recibo de Locação\"\n testID='notas-recibo-locacao-visualizar-recibo'\n leadingIcon={props => }\n />\n \n \n Valor: {formatCurrency(recibo.notaValor)}\n Emissão: {new Date(recibo.notaData).toLocaleDateString('pt-BR')}\n \n ))}\n \n \n \n )\n}\n","import React, { useCallback, useState } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { NFModel } from '@/domain/models'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { MenuActions, Menu, Box, HStack, IconButton, Text, CardList, PageHeader, CardBase } from '@/presentation/components'\nimport { nfState, isLoadingNfState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { styles } from '../../styles'\n\ntype NFProductProps = {\n openDanfe: OpenDanfe\n dateAdapter: DateAdapter\n}\n\nexport const NFProduct: React.FC = ({ openDanfe, dateAdapter }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [nfs] = useRecoilState(nfState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const client = getClient()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenDanfe = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openDanfeParams: OpenDanfeParams = {\n cliCodigo: client.codCliente,\n notaFiscal: nf\n }\n\n openDanfe\n .open(openDanfeParams)\n .then(() => notify.show(`A DANFE da NFº ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Produto'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nf, index) => (\n \n \n {nf.notaNumero.toString().padStart(6, '0')}/{nf.notaSerie}\n {!!nf.notaProcNFE &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 32, height: 32 }}\n testID='notas-produto-opcoes'\n icon={(props: any) => }>\n }>\n handleOpenDanfe(event, nf)}\n title=\"Visualizar Danfe\"\n testID='notas-produto-visualizar-danfe'\n leadingIcon={props => }\n />\n \n }\n \n Valor: {formatCurrency(nf.notaValor)}\n Emissão: {new Date(nf.notaData).toLocaleDateString('pt-BR')}\n {!nf.notaProcNFE &&\n \n \n \n Não existe xml para a NF\n \n \n }\n \n ))}\n \n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, DatePicker, SideFilter, InputField, Divider } from '@/presentation/components'\nimport { nfsState, nfsFiltersState, nfsConfigState, nfState, leaseReceiptState, isLoadingNfState, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideDrawerProps = {\n getNFs: GetNFs\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getNFs, dateAdapter }) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [filters, setFilters] = useRecoilState(nfsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [isOpen, setOpen] = useRecoilState(isOpenNfsFiltersState)\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n\n const client = getClient()\n\n useEffect(() => {\n const initFilters = {\n isOpen: false,\n dataInicio: dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO).toString(),\n dataFim: dateAdapter.today().toString()\n }\n\n if (!filters.dataInicio || !filters.dataFim) {\n setFilters(initFilters)\n }\n }, [])\n\n const handleResetState = (): void => {\n setFilters(currentState => ({\n ...currentState,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n }))\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getNFs\n .get(paramsGetTicket)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO))}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n />\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenNfsFiltersState = atom({\n key: 'isOpenNfsFiltersState',\n default: false\n})\n\nexport const nfsFiltersState = atom({\n key: 'nfsFiltersState',\n default: {\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useSetRecoilState } from 'recoil'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { GetNFs, GetNFsParams, OpenDanfe, OpenLeaseReceipt, OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { nfsState, SideFilters, NFProduct, NFService, LeaseReceipt, isLoadingNfState, leaseReceiptState, nfState, nfsConfigState } from '@/presentation/pages/NotaFiscal/components/'\nimport { styles } from './styles'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype NotaFiscalProps = {\n getNFs: GetNFs\n openDanfe: OpenDanfe\n openNfse: OpenNfse\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const NotaFiscal: React.FC = ({\n getNFs,\n openDanfe,\n openNfse,\n openLeaseReceipt,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n const setLoading = useSetRecoilState(isLoadingNfState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const getNFsParams: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'DD-MM-YYYY'),\n dtFinal: dateAdapter.format(dateAdapter.today(), 'DD-MM-YYYY')\n }\n\n getNFs\n .get(getNFsParams)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n\n \n NFService({ openNfse, dateAdapter })} />\n NFProduct({ openDanfe, dateAdapter })} />\n LeaseReceipt({ openLeaseReceipt, dateAdapter })} />\n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { nfsState, isLoadingNfState, FiltersChipPanel, CardNfse, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype NFServiceProps = {\n openNfse: OpenNfse\n dateAdapter: DateAdapter\n}\n\nexport const NFService: React.FC = ({ openNfse, dateAdapter }) => {\n const theme = useTheme()\n const isLoading = useRecoilValue(isLoadingNfState)\n const nfs = useRecoilValue(nfsState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Serviço'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nfse, index) => \n \n )}\n \n \n \n )\n}\n","import React from 'react'\nimport { NotaFiscal } from '@/presentation/pages/NotaFiscal'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetRemoteGetNFs, makeOpenDanfe, makeOpenNfse, makeOpenLeaseReceipt } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeNFFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { Claim, ClaimsResult, ServiceType } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'isLoadingSacState',\n default: true\n})\n\nexport const sacState = atom({\n key: 'sacState',\n default: {\n listaReclamacoes: [] as Claim[],\n listaTipoAtendimento: [] as ServiceType[]\n } as ClaimsResult\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Claim } from '@/domain/models/sac-model'\nimport { DateAdapter } from '@/data/protocols'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { Text, Chip, VStack, Box, Divider, HStack } from '@/presentation/components'\nimport { sacState } from '@/presentation/pages/Sac/components'\nimport { CircleIcon } from '@/presentation/pages/ServiceOrders/components/CardOs/styles'\nimport { useRecoilValue } from 'recoil'\n\ntype CardSacProps = {\n sac: Claim\n dateAdapter: DateAdapter\n}\n\nexport const CardSac: React.FC = ({ sac, dateAdapter }: CardSacProps) => {\n const { isMobile } = useMediaQueries()\n const { listaTipoAtendimento } = useRecoilValue(sacState)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const colorType = {\n E: theme.colors.success,\n R: theme.colors.error,\n S: theme.colors.info\n }[sac.tipo]\n\n const sacType = listaTipoAtendimento?.find(tipo => tipo.codigo === sac.tipo)?.descricao ?? 'Não informado'\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n {sac.reclamante.toUpperCase()}\n \n \n Nº {sac.codReclamacao}\n \n \n\n \n\n \n \n \n \n Abertura:\n \n {dateAdapter.format(sac.data, 'DD/MM/YYYY HH:mm:ss')}\n \n \n \n Descrição:\n \n {sac.reclamacao}\n \n \n \n\n \n \n Tipo:\n \n {sacType &&\n \n }\n \n \n \n )\n}\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n marginLeft: 4,\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React, { useCallback } from 'react'\nimport { StyleSheet, GestureResponderEvent } from 'react-native'\nimport { Box, Button, Text, TextInput } from '@react-native-material/core'\nimport { RadioButton } from 'react-native-paper'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Claim } from '@/domain/models'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase } from '@/presentation/components'\nimport { isLoadingNewSacState, isOpenNewSacState, sacNewState, sacState } from '@/presentation/pages/Sac/components'\n\ntype ModalNewSacParams = {\n tipo: 'E' | 'R' | 'S'\n tipoDescricao: 'ELOGIO' | 'RECLAMAÇÃO' | 'SUGESTÃO'\n reclamante: string\n reclamacao: string\n}\n\ntype ModalNewSacProps = {\n createSac: CreateSac\n dateAdapter: DateAdapter\n}\n\nexport const ModalNewSac: React.FC = ({ createSac, dateAdapter }: ModalNewSacProps) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [newSac, setNewSac] = useRecoilState(sacNewState)\n const setSacs = useSetRecoilState(sacState)\n const setLoading = useSetRecoilState(isLoadingNewSacState)\n const [isOpen, setOpen] = useRecoilState(isOpenNewSacState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof ModalNewSacParams, value: string): void => {\n setNewSac(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n const typeDescription = {\n E: 'ELOGIO',\n S: 'SOLICITAÇÃO',\n R: 'RECLAMAÇÃO'\n }[newSac.tipo]\n\n const dateParam = dateAdapter.today().toString()\n\n const createSacParams: CreateSacParams = {\n reclamante: newSac.reclamante,\n reclamacao: newSac.reclamacao,\n codCliente: client.codCliente,\n tipo: newSac.tipo,\n data: dateParam,\n hora: dateParam,\n dataAbertura: dateParam,\n nomeCliente: client.nomeCliente,\n dataAcaoImediata: dateParam,\n dataAcaoCorretiva: dateParam,\n unidade: client.unidade,\n tipoDescricao: typeDescription\n }\n\n createSac\n .create(createSacParams)\n .then(codigo => {\n if (codigo) {\n successNewSac(createSacParams, codigo as unknown as string)\n resetNewSac()\n } else {\n throw new Error('Não foi possível gravar o SAC!')\n }\n })\n .catch(handleError)\n .finally(handleCloseModal)\n }\n\n const successNewSac = (createSacParams: CreateSacParams, codigo: string): void => {\n setSacs(currentState => ({\n ...currentState,\n listaReclamacoes: [\n ...currentState.listaReclamacoes,\n {\n ...createSacParams as unknown as Claim,\n codReclamacao: parseInt(codigo)\n }\n ]\n }))\n\n notify.success('SAC gravado com sucesso')\n }\n\n const resetNewSac = (): void => {\n setLoading(false)\n setOpen(false)\n setNewSac(currentState => ({\n ...currentState,\n reclamacao: '',\n reclamante: '',\n tipo: 'E',\n tipoDescricao: 'ELOGIO'\n }))\n }\n\n const handleCloseModal = useCallback((): void => {\n setLoading(false)\n setOpen(false)\n }, [])\n\n return (\n \n \n Preencha os dados para criar um SAC\n\n \n \n handleChangeInput('tipo', 'E')}\n />\n \n Elogio\n \n \n \n handleChangeInput('tipo', 'S')}\n />\n \n Solicitação\n \n \n \n handleChangeInput('tipo', 'R')}\n />\n \n Reclamação\n \n \n \n\n handleChangeInput('reclamante', text)}\n testID='sac-nome'\n value={newSac.reclamante}\n />\n handleChangeInput('reclamacao', text)}\n value={newSac.reclamacao}\n multiline\n />\n\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n textOrderStyles: {\n fontSize: 14,\n fontWeight: '400'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingNewSacState = atom({\n key: 'isLoadingNewSacState',\n default: true\n})\n\nexport const isOpenNewSacState = atom({\n key: 'isOpenNewSacState',\n default: false\n})\n\nexport const sacNewState = atom({\n key: 'newSacForm',\n default: {\n isLoading: false,\n tipo: 'E' as 'E' | 'R' | 'S',\n tipoDescricao: 'ELOGIO' as 'ELOGIO' | 'RECLAMAÇÃO' | 'SOLICITAÇÃO',\n reclamante: '',\n reclamacao: ''\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch',\n position: 'relative'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnContainer: {\n position: 'absolute',\n bottom: 16,\n right: 32\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { CreateSac, GetSacList } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { sacState, ModalNewSac, CardSac, isLoadingState, isOpenNewSacState } from '@/presentation/pages/Sac/components'\nimport { useAuth, useErrorHandler, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SacProps = {\n dateAdapter: DateAdapter\n getSacList: GetSacList\n createSac: CreateSac\n}\n\nexport const Sac: React.FC = ({ dateAdapter, getSacList, createSac }: SacProps) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [sacs, setSacs] = useRecoilState(sacState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const setOpenNewSac = useSetRecoilState(isOpenNewSacState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getSacList\n .get({ codigoCliente: client.codCliente })\n .then(setSacs)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleOpenNewSac = (): void => {\n setOpenNewSac(true)\n }\n\n return (\n \n \n \n }\n />\n \n {sacs.listaReclamacoes?.map(item => (\n \n ))}\n \n \n\n \n \n } color={themeClient.mainColor}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { Sac } from '@/presentation/pages/Sac'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeCreateSac, makeGetSacList } from '@/main/factories/usecases'\n\nexport const makeSacFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { SigmaCloudKeyResult, SowillKeyResult, SowillIdentifier } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const sigmaKeysState = atom({\n key: 'sigmaKeyState',\n default: [] as SigmaCloudKeyResult\n})\n\nexport const sowillKeysState = atom({\n key: 'sowillKeysState',\n default: [] as SowillKeyResult\n})\n\nexport const sowillIdentifierState = atom({\n key: 'sowillIdentifierState',\n default: {\n codInternoChave: 0,\n idCliente: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetSigmaEvents, SigmaFilterType } from '@/domain/usecases'\nimport { Box, DatePicker, SideFilter, Text } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { monitoringDateFiltersState, isLoadingMonitoringEventState, isOpenMonitoringFiltersState, SelectTypeSigmaEvent, remotyFilterState, sigmaFilterState, monitoringListHasError } from '@/presentation/pages/Events/components'\n\ntype SideFiltersProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SideFilters: React.FC = ({\n dateAdapter\n}) => {\n const { getClient } = useAuth()\n const client = getClient()\n\n const [monitoringFilterDate, setMonitoringFilterDate] = useRecoilState(monitoringDateFiltersState)\n const setRemotyFilter = useSetRecoilState(remotyFilterState)\n const setSigmaFilter = useSetRecoilState(sigmaFilterState)\n const [isOpen, setOpen] = useRecoilState(isOpenMonitoringFiltersState)\n const setNoMonitoringError = useSetRecoilState(monitoringListHasError)\n\n const [localFilterDate, setLocalFilterDate] = React.useState({\n dataInicial: '',\n dataFinal: ''\n })\n\n const isLoading = useRecoilValue(isLoadingMonitoringEventState)\n\n const handleResetState = (): void => {\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: '',\n dataFinal: ''\n })\n )\n\n setRemotyFilter({ remotyIdEquipamento: 0, remotyNmEquip: '' })\n\n setSigmaFilter({ sigmaTipo: null as unknown as SigmaFilterType, sigmaTituloChip: '' })\n }\n\n const handleClose = (): void => setOpen(false)\n\n useFocusEffect(\n useCallback(() => {\n handleResetState()\n }, [])\n )\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpen(false)\n setNoMonitoringError(false)\n\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: localFilterDate.dataInicial,\n dataFinal: localFilterDate.dataFinal\n }))\n }\n\n const handleChangeDate = useCallback((date: Date): void => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS, date).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(date.toString(), 'YYYY-MM-DD')\n\n setLocalFilterDate({ dataInicial, dataFinal })\n }, [])\n\n return (\n \n \n \n Referente aos 30 dias anteriores à data selecionada.\n handleChangeDate(date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n\n \n {([ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && (\n \n \n \n \n )) as React.ReactElement || undefined}\n \n )\n}\n","import { atom } from 'recoil'\nimport { SigmaFilterType } from '@/domain/usecases'\n\nexport const isOpenMonitoringFiltersState = atom({\n key: 'isOpenMonitoringFiltersState',\n default: false\n})\n\nexport const monitoringDateFiltersState = atom({\n key: 'monitoringDateFiltersState',\n default: {\n dataInicial: '',\n dataFinal: ''\n }\n})\n\nexport const remotyFilterState = atom({\n key: 'remotyFilterState',\n default: {\n remotyIdEquipamento: 0,\n remotyNmEquip: ''\n }\n})\n\nexport const sigmaFilterState = atom({\n key: 'sigmaFilterState',\n default: {\n sigmaTipo: null as unknown as SigmaFilterType,\n sigmaTituloChip: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n margin: 15,\n cursor: 'pointer'\n },\n selectInput: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n fontSize: 16,\n borderWidth: 1,\n borderColor: '#ccc',\n borderRadius: 4,\n backgroundColor: '#fff'\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\n },\n modalContent: {\n backgroundColor: '#fff',\n padding: 20,\n borderRadius: 8,\n width: 200\n },\n optionItem: {\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#ccc'\n }\n})\n","import React, { useState } from 'react'\nimport { View, Text, Modal, TouchableOpacity, TouchableWithoutFeedback } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { SigmaFilterTitle } from '@/domain/usecases'\nimport { sigmaFilterState } from '../SideFilters/atom'\nimport { AntDesign } from '@expo/vector-icons'\nimport { styles } from './styles'\n\nenum sigmaEventsFilterType {\n 'Todos' = 'rbTodos',\n 'Alarme' = 'rbAlarme',\n 'Teste Automático' = 'rbTstAuto',\n 'Armado' = 'rbArmado',\n 'Desarmado' = 'rbDesarmado',\n 'Sem Controle' = 'rbSControle',\n 'Desarmado ronda' = 'rbRonda'\n}\n\nexport const SelectTypeSigmaEvent = (): JSX.Element => {\n const [modalVisible, setModalVisible] = useState(false)\n const [filters, setFilters] = useRecoilState(sigmaFilterState)\n\n const sigmaFilterTitle: SigmaFilterTitle[] = ['Todos', 'Alarme', 'Teste Automático', 'Armado', 'Desarmado', 'Sem Controle', 'Desarmado ronda']\n\n const handleOpenModal = (): void => {\n setModalVisible(true)\n }\n\n const handleCloseModal = (): void => {\n setModalVisible(false)\n }\n\n const handleOptionPress = (option: SigmaFilterTitle): void => {\n const sigmaTipo = option.length ? sigmaEventsFilterType[option] : 'rbTodos'\n\n setFilters(currentFilters => ({\n ...currentFilters,\n sigmaTipo,\n sigmaTituloChip: option\n }))\n\n setModalVisible(false)\n }\n\n const stylesContainer = {\n ...styles,\n margin: 0\n }\n\n return (\n \n \n \n {filters.sigmaTituloChip || 'Tipos de eventos'}\n <>\n \n \n\n \n \n \n {sigmaFilterTitle.map((option) => (\n handleOptionPress(option)}\n style={styles.optionItem}\n >\n {option}\n \n ))}\n \n \n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { CentralMonitoring } from '@/domain/models'\nimport { useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { contactListHasError, monitoringListHasError, remotyFilterState, sectorListHasError, userListHasError } from '@/presentation/pages/Events/components'\n\nexport const SelectRemotyEventCompany: React.FC = () => {\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentCompany, setCompany] = useRecoilState(remotyFilterState)\n const setEventError = useSetRecoilState(monitoringListHasError)\n const setSectorError = useSetRecoilState(sectorListHasError)\n const setUserError = useSetRecoilState(userListHasError)\n const setContactError = useSetRecoilState(contactListHasError)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const companies = client?.centraisMonitoramento\n\n const onSelectCompany = (company: CentralMonitoring): void => {\n setCompany({ remotyIdEquipamento: company.idEquipment, remotyNmEquip: company.nmEquipment })\n }\n\n const handleSelectCompany = (company: CentralMonitoring): void => {\n onSelectCompany(company)\n setMenuOpen(false)\n\n setEventError(false)\n setSectorError(false)\n setUserError(false)\n setContactError(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {companies.map((company) => (\n handleSelectCompany(company)}\n title={company.nmEquipment}\n />\n ))}\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const sigmaTypeEventState = atom({\n key: 'typeSigmaEventState',\n default: [\n { _id: 'Todos', value: 'rbTodos' },\n { _id: 'Alarme', value: 'rbAlarme' },\n { _id: 'Teste Automático', value: 'rbTstAuto' },\n { _id: 'Armado', value: 'rbArmado' },\n { _id: 'Desarmado', value: 'rbDesarmado' },\n { _id: 'Sem Controle', value: 'rbSControle' },\n { _id: 'Desarmado ronda', value: 'rbRonda' }\n ]\n})\n\nexport type SigmaTypes = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\n","import { atom } from 'recoil'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\n\nexport const selectSigmaCloudKeyData = atom({\n key: 'selectSigmaCloudKeyData',\n default: {} as SigmaCloudKeyResponseModel\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { selectSigmaCloudKeyData } from './atom'\nimport { sigmaKeysState } from '../atom'\n\nexport const SelectSigmaCloudKey: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentKey, setCurrentKey] = useRecoilState(selectSigmaCloudKeyData)\n const keys = useRecoilValue(sigmaKeysState)\n const themeClient = getThemeClient()\n const { isMobile } = useMediaQueries()\n\n const handleSelectCompany = (company: SigmaCloudKeyResponseModel): void => {\n setCurrentKey(company)\n setMenuOpen(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((key) => (\n handleSelectCompany(key)}\n title={`Empresa: ${key.empresaSigma.toString()} - Chave: ${key.chave}/${key.particao}`}\n />\n ))}\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenMonitoringFiltersState, monitoringDateFiltersState, remotyFilterState, selectSigmaCloudKeyData, sowillIdentifierState } from '@/presentation/pages/Events/components'\nimport { ClientMonitoringType } from '@/domain/models'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const filters = useRecoilValue(monitoringDateFiltersState)\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const notify = useNotify()\n\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n\n const client = getClient()\n\n const period = filters.dataInicial && filters.dataFinal\n ? `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')} até ${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : filters.dataFinal\n ? `${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')}`\n\n const handleOpen = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n \n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams, GetRemotyEvents, GetRemotyEventsParams, GetSigmaEvents, GetSigmaEventsParams, PrintEvents, GetSowillEvents, GetSowillEventsParams, GetSowillIdentifier } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB, CardList, PageHeader, ActionsButtons, Stack } from '@/presentation/components'\nimport { FiltersChipPanel, CardMonitoringEvent, monitoringDateFiltersState, isOpenMonitoringFiltersState, SelectRemotyEventCompany, SelectSigmaCloudKey, SelectSowillKey, monitoringEventListState, isLoadingMonitoringEventState, sowillIdentifierState, selectSigmaCloudKeyData, remotyFilterState, monitoringListHasError, sigmaFilterState } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useFocusEffect } from '@react-navigation/native'\n\ntype MonitoringListEventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getMoniEvents: GetMoniEvents\n getSigmaEvents: GetSigmaEvents\n getRemotyEvents: GetRemotyEvents\n getSowillEvents: GetSowillEvents\n getSowillIdentifier: GetSowillIdentifier\n}\n\nexport const MonitoringEventList: React.FC = ({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents\n}) => {\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n\n const [isLoading, setLoading] = useRecoilState(isLoadingMonitoringEventState)\n const [monitoringEventList, setMonitoringEventList] = useRecoilState(monitoringEventListState)\n const [hasError, setHasError] = useRecoilState(monitoringListHasError)\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const [filters, setFilters] = useRecoilState(monitoringDateFiltersState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sigmaFilterType = useRecoilValue(sigmaFilterState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n setFilters({ dataInicial, dataFinal })\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n if (conditions && !hasError) { getEventsMonitoring() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n filters.dataInicial,\n sigmaFilterType.sigmaTipo,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetRemotyEventsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento,\n dtInicio: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dtFim: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate\n }\n\n setLoading(true)\n\n getRemotyEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetMoniEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetMoniEventsParams = {\n unidade: client.unidade.toString(),\n empresaMoni: client.empresaMonitoramento.toString(),\n codCliente: client.codCliente,\n dataInicial: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate\n }\n\n setLoading(true)\n\n getMoniEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetSigmaEventsParams = {\n empresa: client.empresa,\n cliente: currentSigmaKey.codCliente,\n dataIni: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dataFinal: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate,\n filtro: sigmaFilterType.sigmaTipo ? sigmaFilterType.sigmaTipo : GetSigmaEvents.RN.DEFAULT_FILTER_TYPE,\n idSigma: currentSigmaKey.empresaSigma\n }\n\n getSigmaEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetSowillEventsParams = {\n dateTimeInicioManutencao: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate,\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n getSowillEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsMonitoring = {\n [ClientMonitoringType.MONI]: handleGetMoniEvent,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaEvent,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaEvent,\n [ClientMonitoringType.REMOTY]: handleGetRemotyEvent,\n [ClientMonitoringType.SO_WILL]: handleGetSowillEvent\n }[client.tipoConexao]\n\n const handlePrint = (): void => {\n let listaEventos: GenericEventModel[]\n\n if (client.tipoConexao === ClientMonitoringType.MONI) {\n listaEventos = monitoringEventList.map(event => ({\n evento: event.evento,\n dataEvento: dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss'),\n descricao: event.descricao,\n empresaSigma: client.empresaMonitoramento\n }))\n } else {\n listaEventos = monitoringEventList.map(event => ({\n ...event,\n dataEvento: client.tipoConexao === ClientMonitoringType.REMOTY\n ? event.dataEvento\n : dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss')\n }))\n }\n\n const printParams = {\n tipoConexao: client.tipoConexao,\n data: listaEventos\n }\n\n printEvents.print(printParams)\n .then(res => res)\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n console.error({ printError: error })\n })\n }\n\n const handleFilter = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n }\n openFilters={handleFilter}\n />\n\n \n {filters.dataInicial && }\n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {monitoringEventList?.map((event, index) => (\n \n ))}\n \n \n {\n !!monitoringEventList.length &&\n \n } color={themeClient.mainColor}\n />\n \n }\n \n )\n}\n","import { GenericEventModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingMonitoringEventState = atom({\n key: 'isLoadingMonitoringEventState',\n default: false\n})\n\nexport const monitoringEventListState = atom({\n key: 'monitoringEventListState',\n default: [] as GenericEventModel[]\n})\n\nexport const monitoringListHasError = atom({\n key: 'monitoringListHasError',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { GetMoniSectorsParams, GetMoniSectors, GetRemotySectorsParams, GetRemotySectors, GetSowillSectors, GetSowillSectorsParams, GetSigmaCloudSectors, GetSigmaCloudSectorsParams, GetSigmaDeskSectors, GetSigmaDeskSectorParams } from '@/domain/usecases'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { CardSector, isLoadingSectorEventsState, sectorListState, SelectSigmaCloudKey, SelectRemotyEventCompany, selectSigmaCloudKeyData, sowillIdentifierState, SelectSowillKey, remotyFilterState, sectorListHasError } from '@/presentation/pages/Events/components'\n\ntype SectorListProps = {\n getMoniSectors: GetMoniSectors\n getRemotySectors: GetRemotySectors\n getSowillSectors: GetSowillSectors\n getSigmaCloudSectors: GetSigmaCloudSectors\n getSigmaDeskSectors: GetSigmaDeskSectors\n}\n\nexport const SectorList: React.FC = ({\n getRemotySectors,\n getMoniSectors,\n getSowillSectors,\n getSigmaCloudSectors,\n getSigmaDeskSectors\n}) => {\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(sectorListHasError)\n const [isLoading, setLoading] = useRecoilState(isLoadingSectorEventsState)\n const [sectorList, setSectorList] = useRecoilState(sectorListState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0 && remotyIdEquipamento,\n [ClientMonitoringType.MONI]: client.tipoConexao && client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventsSector() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetMoniSectorList = (): void => {\n const params: GetMoniSectorsParams = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n getMoniSectors\n .getSectors(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotySectorList = (): void => {\n const params: GetRemotySectorsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotySectors\n .getSectors(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillSectorList = (): void => {\n const getSowillSectorParams: GetSowillSectorsParams = {\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n setLoading(true)\n\n getSowillSectors\n .getZones(getSowillSectorParams)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaCloudSectorList = (): void => {\n const params: GetSigmaCloudSectorsParams = {\n chave: currentSigmaKey.chave,\n particao: currentSigmaKey.particao,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaCloudSectors\n .getZones(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaDeskSectorList = (): void => {\n const params: GetSigmaDeskSectorParams = {\n empresaSigma: currentSigmaKey.empresaSigma,\n idCentral: currentSigmaKey.codInterno,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaDeskSectors\n .getSector(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsSector = {\n [ClientMonitoringType.MONI]: handleGetMoniSectorList,\n [ClientMonitoringType.REMOTY]: handleGetRemotySectorList,\n [ClientMonitoringType.SO_WILL]: handleGetSowillSectorList,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaCloudSectorList,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaDeskSectorList\n }[client.tipoConexao]\n\n return (\n \n }\n />\n\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {sectorList?.map((sector, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericSectorModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingSectorEventsState = atom({\n key: 'isLoadingSectorEventsState',\n default: false\n})\n\nexport const sectorListState = atom({\n key: 'sectorListState',\n default: [] as GenericSectorModel[]\n})\n\nexport const sectorListHasError = atom({\n key: 'sectorListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Box, Divider, HStack } from '@react-native-material/core'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Text, VStack } from '@/presentation/components'\nimport { useAuth, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardMonitoringEventProps = {\n dateAdapter: DateAdapter\n event: GenericEventModel\n}\n\nexport const CardMonitoringEvent: React.FC = ({ event, dateAdapter }: CardMonitoringEventProps) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const client = getClient()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n {event?.evento &&\n \n \n Evento:\n \n {event.evento}\n }\n \n\n \n \n {\n event.aux &&\n \n \n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && 'Empresa:'}\n {[ClientMonitoringType.MONI].includes(client.tipoConexao) && 'AUX:'}\n \n {event.aux}\n \n }\n \n \n Data:\n \n {\n client.tipoConexao === ClientMonitoringType.REMOTY\n ? event.dataEvento\n : dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss')\n }\n \n \n \n Descrição:\n \n {event.descricao}\n \n {\n [ClientMonitoringType.REMOTY].includes(client.tipoConexao) && event.usuario &&\n \n \n Usuario:\n \n {event.usuario}\n \n }\n \n\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericSectorModel, ClientMonitoringType } from '@/domain/models'\nimport { useAuth, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardSectorProps = {\n sector: GenericSectorModel\n}\n\nexport const CardSector: React.FC = ({ sector }: CardSectorProps) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const client = getClient()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n \n {[ClientMonitoringType.SO_WILL, ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao)\n ? 'Zona:'\n : 'Setor:'}\n \n {sector.nome}\n \n\n {sector?.codigoZona &&\n \n \n Código:\n \n {sector.codigoZona}\n }\n \n\n \n \n <>\n {sector?.codigoCliente &&\n \n \n Codigo do cliente:\n \n {sector.codigoCliente}\n }\n {sector?.idEquipamento &&\n \n \n Id do Equipamento:\n \n {sector.idEquipamento}\n }\n {sector?.ativo &&\n \n \n Status:\n \n {sector.ativo ? 'Ativo' : ' Inativo'}\n }\n {sector?.observacao &&\n \n \n Observação:\n \n {sector?.observacao}\n }\n \n \n\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetRemotyContacts, GetRemotyContactsParams, GetSigmaDeskContacts, GetSigmaDeskContactsParams } from '@/domain/usecases'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { CardContact, contactListState, isLoadingContactEventState, SelectRemotyEventCompany, SelectSigmaCloudKey, selectSigmaCloudKeyData, remotyFilterState, contactListHasError } from '@/presentation/pages/Events/components'\n\ntype ContactEventListProps = {\n getRemotyContacts: GetRemotyContacts\n getSigmaDeskContacts: GetSigmaDeskContacts\n}\n\nexport const ContactEventList: React.FC = ({\n getRemotyContacts,\n getSigmaDeskContacts\n}: ContactEventListProps) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(contactListHasError)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const [contactList, setContactList] = useRecoilState(contactListState)\n const [isLoading, setLoading] = useRecoilState(isLoadingContactEventState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: false,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: false\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventContacts() }\n }, [client.empresa, remotyIdEquipamento, currentSigmaKey.codCliente, currentSigmaKey.empresaSigma])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyContactList = (): void => {\n const params: GetRemotyContactsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotyContacts\n .getContacts(params)\n .then(setContactList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaDeskContactList = (): void => {\n const params: GetSigmaDeskContactsParams = {\n empresaSigma: currentSigmaKey.empresaSigma,\n idCentral: currentSigmaKey.codInterno,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaDeskContacts\n .getContacts(params)\n .then(setContactList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventContacts = {\n [ClientMonitoringType.MONI]: () => { },\n [ClientMonitoringType.REMOTY]: handleGetRemotyContactList,\n [ClientMonitoringType.SIGMA_CLOUD]: () => { },\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaDeskContactList,\n [ClientMonitoringType.SO_WILL]: () => { }\n }[client.tipoConexao]\n\n return (\n \n }\n />\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n \n \n \n {contactList?.map((contact, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericContactModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingContactEventState = atom({\n key: 'isLoadingContactEventState',\n default: false\n})\n\nexport const contactListState = atom({\n key: 'contactListState',\n default: [] as GenericContactModel[]\n})\n\nexport const contactListHasError = atom({\n key: 'contactListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericContactModel } from '@/domain/models'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardContactProps = {\n contact: GenericContactModel\n}\n\nexport const CardContact: React.FC = ({ contact }: CardContactProps) => {\n const { isMobile } = useMediaQueries()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n\n \n \n Usuário:\n \n {contact?.nomeUsuario}\n \n {contact?.idUsuario &&\n \n \n Id:\n \n {contact?.idUsuario}\n }\n\n \n\n \n \n <>\n {contact.idDispositivo &&\n \n \n Id:\n \n {contact.idDispositivo}\n }\n {contact?.nomeDispositivo &&\n \n \n Dispositivo:\n \n {contact.nomeDispositivo}\n }\n {contact.fone1 &&\n \n \n Fone:\n \n {contact.fone1}\n }\n {contact.fone2 &&\n \n \n Fone 2:\n \n {contact?.fone2}\n }\n \n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GetMoniUsers, GetMoniUsersParams, GetRemotyUsers, GetRemotyUsersParams, GetSigmaCloudUsers, GetSigmaCloudUsersParams, GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { CardUser, userListState, isLoadingUserEventsState, SelectRemotyEventCompany, SelectSigmaCloudKey, sowillIdentifierState, SelectSowillKey, selectSigmaCloudKeyData, remotyFilterState, userListHasError } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\ntype UserEventListProps = {\n getMoniUsers: GetMoniUsers\n getRemotyUsers: GetRemotyUsers\n getSowillUsers: GetSowillUsers\n getSigmaCloudUsers: GetSigmaCloudUsers\n}\n\nexport const UserEventList: React.FC = ({\n getMoniUsers,\n getRemotyUsers,\n getSowillUsers,\n getSigmaCloudUsers\n}: UserEventListProps) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(userListHasError)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const [isLoading, setLoading] = useRecoilState(isLoadingUserEventsState)\n const [userList, setUserList] = useRecoilState(userListState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventUser() }\n }, [\n client.codCliente,\n remotyIdEquipamento,\n currentSigmaKey,\n currentSigmaKey.codCliente,\n sowillIdentifier.codInternoChave\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetMoniUserList = (): void => {\n const params: GetMoniUsersParams = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n getMoniUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotyUserList = (): void => {\n const params: GetRemotyUsersParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotyUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillUserList = (): void => {\n const params: GetSowillUsersParams = {\n idCliente: sowillIdentifier.idCliente,\n codInternoChave: sowillIdentifier.codInternoChave\n }\n\n setLoading(true)\n\n getSowillUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaCloudUserList = (): void => {\n const params: GetSigmaCloudUsersParams = {\n codCentral: currentSigmaKey.codInterno,\n empresaSigma: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaCloudUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventUser = {\n [ClientMonitoringType.MONI]: handleGetMoniUserList,\n [ClientMonitoringType.REMOTY]: handleGetRemotyUserList,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaCloudUserList,\n [ClientMonitoringType.SIGMA_DESK]: () => { },\n [ClientMonitoringType.SO_WILL]: handleGetSowillUserList\n }[client.tipoConexao]\n\n return (\n \n }\n />\n\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {userList?.map((user, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericUserModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingUserEventsState = atom({\n key: 'isLoadingUserEventsState',\n default: false\n})\n\nexport const userListState = atom({\n key: 'useListState',\n default: [] as GenericUserModel[]\n})\n\nexport const userListHasError = atom({\n key: 'userListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericUserModel } from '@/domain/models'\nimport { theme } from '@/presentation/styles'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype CardUserProps = {\n user: GenericUserModel\n}\n\nexport const CardUser: React.FC = ({ user }: CardUserProps) => {\n const { isMobile } = useMediaQueries()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n\n {user?.nome &&\n \n \n Nome:\n \n {user.nome}\n }\n\n {user.codCliente &&\n \n \n Codigo do cliente:\n \n {user.codCliente}\n }\n \n\n {user.fone1 &&\n \n \n <>\n \n \n Fone:\n \n {user.dddFone ? `(${user.dddFone})` : ''}\n {user.fone1}\n \n {user.fone2 &&\n \n \n Fone 2:\n \n {user?.fone2}\n \n }\n {user.fone3 &&\n \n \n Fone 3:\n \n {user?.fone3}\n \n }\n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const selectSowillKeyState = atom({\n key: 'selectSowillKeyState',\n default: {\n empresaMonitoramento: 0,\n chave: '',\n particao: ''\n }\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SowillKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { selectSowillKeyState } from './atom'\nimport { sowillKeysState } from '../atom'\n\nexport const SelectSowillKey: React.FC = () => {\n const keys = useRecoilValue(sowillKeysState)\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [key, setKey] = useRecoilState(selectSowillKeyState)\n const { isMobile } = useMediaQueries()\n\n const themeClient = getThemeClient()\n\n const handleSelectCompany = (identifier: SowillKeyResponseModel): void => {\n const { codCliente, ...key } = identifier\n setKey(key)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((identifier, index) => (\n handleSelectCompany(identifier)}\n title={`Empresa ${identifier.empresaMonitoramento} - Chave ${identifier.chave}/ ${identifier.particao}`}\n />\n ))}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native-safe-area-context'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { PrintEvents, GetMoniEvents, GetRemotyEvents, GetSowillEvents, GetSigmaEvents, GetRemotySectors, GetMoniSectors, GetRemotyUsers, GetSowillUsers, GetRemotyContacts, GetSowillSectors, GetMoniUsers, GetSigmaCloudSectors, GetSigmaCloudUsers, GetSigmaCloudKeys, GetSowillKeys, GetSowillIdentifier, GetSigmaDeskSectors, GetSigmaDeskContacts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { NoResultMessage } from '@/presentation/components'\nimport { useAuth, useTheme, useThemeClient, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { SideFilters, SectorList, UserEventList, ContactEventList, MonitoringEventList, sowillKeysState, sowillIdentifierState, sigmaKeysState } from '@/presentation/pages/Events/components'\nimport { styles } from './styles'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { AccessDeniedError } from '@/domain/errors'\nimport { selectSowillKeyState } from './components/SelectSowillKey/atom'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype EventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getRemotyEvents: GetRemotyEvents\n getRemotySectors: GetRemotySectors\n getRemotyUsers: GetRemotyUsers\n getRemotyContacts: GetRemotyContacts\n getMoniEvents: GetMoniEvents\n getMoniSectors: GetMoniSectors\n getMoniUsers: GetMoniUsers\n getSowillEvents: GetSowillEvents\n getSowillSectors: GetSowillSectors\n getSowillUsers: GetSowillUsers\n getSowillKeys: GetSowillKeys\n getSowillIdentifier: GetSowillIdentifier\n getSigmaEvents: GetSigmaEvents\n getSigmaCloudSectors: GetSigmaCloudSectors\n getSigmaCloudUsers: GetSigmaCloudUsers\n getSigmaCloudKeys: GetSigmaCloudKeys\n getSigmaDeskSectors: GetSigmaDeskSectors\n getSigmaDeskContacts: GetSigmaDeskContacts\n}\n\nexport const Events: React.FC = ({\n dateAdapter,\n printEvents,\n getSigmaEvents,\n getRemotyEvents,\n getRemotySectors,\n getRemotyUsers,\n getRemotyContacts,\n getMoniEvents,\n getMoniSectors,\n getMoniUsers,\n getSowillEvents,\n getSowillSectors,\n getSowillUsers,\n getSowillKeys,\n getSowillIdentifier,\n getSigmaCloudSectors,\n getSigmaCloudUsers,\n getSigmaCloudKeys,\n getSigmaDeskSectors,\n getSigmaDeskContacts\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const { getClient, logout } = useAuth()\n const [sigmaKeys, setSigmaKeys] = useRecoilState(sigmaKeysState)\n\n const setSowillKeysList = useSetRecoilState(sowillKeysState)\n const selectedSowillKey = useRecoilValue(selectSowillKeyState)\n const setSowillIdentifier = useSetRecoilState(sowillIdentifierState)\n\n const themeClient = getThemeClient()\n const client = getClient()\n const notify = useNotify()\n\n const errorHandler = (error: Error): void => {\n notify.show(error.message, { variant: 'error' })\n\n if (error instanceof AccessDeniedError) {\n logout()\n }\n }\n\n useFocusEffect(\n useCallback(() => {\n if (\n [ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK]\n .includes(client.tipoConexao) &&\n !sigmaKeys.length) {\n getSigmaCloudKeys\n .getKeys({ codCliente: client.codCliente })\n .then(setSigmaKeys)\n .catch(errorHandler)\n } else\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao)) {\n getSowillKeys\n .getKeys({ codCliente: client.codCliente, unidade: client.unidade })\n .then(setSowillKeysList)\n .catch(errorHandler)\n }\n }, [])\n )\n\n useEffect(() => {\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao) &&\n selectedSowillKey.chave\n ) {\n getSowillIdentifier\n .getIdentifier(selectedSowillKey)\n .then(setSowillIdentifier)\n .catch(errorHandler)\n }\n }, [selectedSowillKey.chave])\n\n return (\n \n \n {client.tipoConexao != null\n ? \n MonitoringEventList({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents,\n getSowillIdentifier\n })}\n />\n\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n SectorList({\n getRemotySectors,\n getMoniSectors,\n getSowillSectors,\n getSigmaCloudSectors,\n getSigmaDeskSectors\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD\n ]\n .includes(client.tipoConexao) &&\n UserEventList({\n getRemotyUsers,\n getMoniUsers,\n getSowillUsers,\n getSigmaCloudUsers\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n ContactEventList({\n getRemotyContacts,\n getSigmaDeskContacts\n })}\n />\n }\n\n \n : \n }\n \n )\n}\n","import React from 'react'\nimport { Events } from '@/presentation/pages/Events'\nimport {\n makePrintEvents, makeGetRemotyUsersFactory, makeGetRemotyEventsFactory,\n makeGetRemotySectorsFactory, makeGetRemotyContactsFactory, makeGetMoniEventsFactory, makeGetMoniSectorsFactory, makeGetMoniUsersFactory, makeGetSowillSectorsFactory, makeGetSowillKeysFactory, makeGetSowillUsersFactory, makeGetSowillIdentifierFactory, makeGetSigmaEventsFactory, makeGetSowillEventsFactory, makeGetSigmaCloudSectorsFactory, makeGetSigmaCloudUsersFactory, makeGetSigmaCloudKeysFactory, makeGetSigmaDeskSectorsFactory, makeGetSigmaDeskContactsFactory\n} from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\n\nexport const makeEventsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n const printEvents = makePrintEvents()\n const dateAdapter = makeDateAdapterFactory()\n const getRemotyEvents = makeGetRemotyEventsFactory()\n const getRemotySectors = makeGetRemotySectorsFactory()\n const getRemotyUsers = makeGetRemotyUsersFactory()\n const getRemotyContacts = makeGetRemotyContactsFactory()\n const getMoniEvents = makeGetMoniEventsFactory()\n const getMoniUsers = makeGetMoniUsersFactory()\n const getMoniSectors = makeGetMoniSectorsFactory()\n const getSowillEvents = makeGetSowillEventsFactory()\n const getSowillSectors = makeGetSowillSectorsFactory()\n const getSowillUsers = makeGetSowillUsersFactory()\n const getSowillKeys = makeGetSowillKeysFactory()\n const getSowillIdentifier = makeGetSowillIdentifierFactory()\n const getSigmaEvents = makeGetSigmaEventsFactory()\n const getSigmaCloudSectors = makeGetSigmaCloudSectorsFactory()\n const getSigmaCloudUsers = makeGetSigmaCloudUsersFactory()\n const getSigmaCloudKeys = makeGetSigmaCloudKeysFactory()\n const getSigmaDeskSectors = makeGetSigmaDeskSectorsFactory()\n const getSigmaDeskContacts = makeGetSigmaDeskContactsFactory()\n\n return (\n <>\n\n \n \n \n\n )\n}\n","import { PrintEvents } from '@/domain/usecases'\nimport { RemotePrintEvents } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePrintEvents = (): PrintEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePrintEvents(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetRemotyEvents } from '@/domain/usecases'\nimport { RemoteGetRemotyEvents } from '@/data/usecases/events'\n\nexport const makeGetRemotyEventsFactory = (): GetRemotyEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyEvents(url, httpClient)\n}\n","import { GetRemotySectors } from '@/domain/usecases'\nimport { RemotySectorModel } from '@/domain/models'\nimport { RemoteGetRemotySectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotySectorsFactory = (): GetRemotySectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotySectors(url, httpClient)\n}\n","import { RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetRemotyUserEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyUsersFactory = (): GetRemotyUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyUserEvents(url, httpClient)\n}\n","import { GetRemotyContacts } from '@/domain/usecases'\nimport { RemotyContactResult } from '@/domain/models'\nimport { RemoteGetRemotyContacts } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyContactsFactory = (): GetRemotyContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyContacts(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetMoniEvents } from '@/domain/usecases'\nimport { RemoteGetMoniEvents } from '@/data/usecases/events'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { MoniEventModel } from '@/domain/models'\n\nexport const makeGetMoniEventsFactory = (): GetMoniEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n const dateAdapter = makeDateAdapterFactory()\n\n return new RemoteGetMoniEvents(url, httpClient, dateAdapter)\n}\n","import { GetMoniUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGeMoniUsersEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniUsersFactory = (): GetMoniUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGeMoniUsersEvents(url, httpClient)\n}\n","import { GetMoniSectors } from '@/domain/usecases'\nimport { RemoteGetMoniSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniSectorsFactory = (): GetMoniSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetMoniSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { RemoteGetSowillEvents } from '@/data/usecases/events'\nimport { GetSowillEvents } from '@/domain/usecases/events/get-sowill-events'\nimport { SoWillEventModel } from '@/domain/models'\n\nexport const makeGetSowillEventsFactory = (): GetSowillEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillEvents(url, httpClient)\n}\n","import { GetSowillSectors } from '@/domain/usecases'\nimport { SowillSectorResult } from '@/domain/models'\nimport { RemoteGetSowillSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillSectorsFactory = (): GetSowillSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillSectors(url, httpClient)\n}\n","import { GetSowillUsers } from '@/domain/usecases'\nimport { SowillUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillUsersFactory = (): GetSowillUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillUsers(url, httpClient)\n}\n","import { GetSowillKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillKeys } from '@/data/usecases/events'\nimport { SowillKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillKeysFactory = (): GetSowillKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillKeys(url, httpClient)\n}\n","import { GetSowillIdentifier } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillIdentifier } from '@/data/usecases/events'\nimport { SowillIdentifierResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillIdentifierFactory = (): GetSowillIdentifier => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillIdentifier(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents } from '@/domain/usecases'\nimport { RemoteGetSigmaEvents } from '@/data/usecases/events'\n\nexport const makeGetSigmaEventsFactory = (): GetSigmaEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaEvents(url, httpClient)\n}\n","import { GetSigmaCloudSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudSectors } from '@/data/usecases/events'\nimport { SigmaSectorModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudSectorsFactory = (): GetSigmaCloudSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudSectors(url, httpClient)\n}\n","import { GetSigmaCloudUsers } from '@/domain/usecases'\nimport { SigmaCloudUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudUsersFactory = (): GetSigmaCloudUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudUsers(url, httpClient)\n}\n","import { GetSigmaCloudKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudKeys } from '@/data/usecases/events'\nimport { SigmaCloudKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudKeysFactory = (): GetSigmaCloudKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudKeys(url, httpClient)\n}\n","import { SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaDeskSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaDeskSectors } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskSectorsFactory = (): GetSigmaDeskSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { GetSigmaDeskContacts } from '@/domain/usecases'\nimport { SigmaDeskContactModel } from '@/domain/models'\nimport { RemoteGetSigmaDeskContacts } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskContactsFactory = (): GetSigmaDeskContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskContacts(url, httpClient)\n}\n","\nimport { atom } from 'recoil'\nimport { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\n\nexport const isLoadingState = atom({\n key: 'travelAlertLoadingState',\n default: false\n})\n\nexport const travelAlertState = atom({\n key: 'travelAlertState',\n default: {\n solicitante: '',\n email: '',\n telefone1: '',\n telefone2: '',\n dataSaida: '',\n horaSaida: '',\n dataRetorno: '',\n horaRetorno: '',\n recomendacoes: '',\n chavesSomenteComCentral: true,\n possuiAutorizados: false,\n possuiVeiculosCuidadosCentral: false\n }\n})\n\nexport const travelAlertResponsiblesKeysState = atom({\n key: 'travelAlertResponsiblesKeysState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertAuthorizedsState = atom({\n key: 'travelAlertAuthorizedsState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertVehiclesState = atom({\n key: 'travelAlertVehiclesState',\n default: [] as AddTravelAlertOsVehicle[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { addResponsibleState, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertResponsiblesKeysState, travelAlertAuthorizedsState, travelAlertAddResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport const ModalAddResponsible: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [addResponsible, setState] = useRecoilState(addResponsibleState)\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [modalState, setModalState] = useRecoilState(travelAlertAddResponsibleState)\n const setModalVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const setTravelAlertResponsibles = useSetRecoilState(travelAlertAuthorizedsState)\n const setTravelAlertResponsiblesKeys = useSetRecoilState(travelAlertResponsiblesKeysState)\n\n const themeClient = getThemeClient()\n const addNewVehicle = !!addVehicle.placa\n\n const handleChangeInput = (name: keyof AddTravelAlertOsResponsible, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddResponsible = useCallback((event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const responsible: AddTravelAlertOsResponsible = {\n id: new Date().getMilliseconds(),\n nome: addResponsible.nome,\n endereco: addResponsible.endereco,\n telefone1: addResponsible.telefone1,\n telefone2: addResponsible.telefone2,\n observacao: addResponsible.observacao\n }\n\n switch (modalState.typeCurrent) {\n case AddTravelAlertResponsibleType.AUTHORIZED:\n setTravelAlertResponsibles(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.KEYS:\n setTravelAlertResponsiblesKeys(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.VEHICLE_KEYS:\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: [\n ...currentState.responsaveis,\n responsible\n ]\n }))\n break\n case AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED:\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: [\n ...currentState.autorizados,\n responsible\n ]\n }))\n break\n default:\n break\n }\n\n handleClose()\n handleReset()\n }, [addResponsible, modalState.typeCurrent])\n\n const handleReset = (): void => {\n setState({\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n })\n }\n\n const handleClose = (): void => {\n setModalState(currentState => ({ ...currentState, isOpen: false }))\n addNewVehicle && setModalVehicle(true)\n }\n\n return (\n \n \n Adicionar responsável\n {[AddTravelAlertResponsibleType.VEHICLE_KEYS, AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED].includes(modalState.typeCurrent) ? 'do veículo' : ''}\n \n\n handleChangeInput('nome', text)}\n value={addResponsible?.nome}\n maxLength={30}\n />\n\n \n handleChangeInput('telefone1', text)}\n style={{ flex: 1 }}\n />\n\n handleChangeInput('telefone2', text)}\n style={{ flex: 1 }}\n />\n \n\n handleChangeInput('endereco', text)}\n value={addResponsible?.endereco}\n maxLength={100}\n />\n\n handleChangeInput('observacao', text)}\n value={addResponsible?.observacao}\n multiline\n numberOfLines={4}\n />\n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const travelAlertAddResponsibleState = atom({\n key: 'travelAlertAddResponsibleState',\n default: {\n isOpen: false,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n }\n})\n\nexport const addResponsibleState = atom({\n key: 'addResponsibleState',\n default: {\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8,\n marginTop: 12\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack, VStack, HStack } from '@/presentation/components'\nimport { useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ResponsiblesPanel, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertAddResponsibleState, travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type AddVehicleParams = {\n placa: string\n possuiAutorizados: boolean\n possuiResponsaveis: boolean\n}\n\nexport const ModalAddVehicle: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [isOpen, setOpen] = useRecoilState(isOpenTravelAlertAddVehicle)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setTravelAlertAddVehicle = useSetRecoilState(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const handleChangeInput = (name: keyof AddVehicleParams, value: string | boolean): void => {\n setAddVehicle(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddVehicle = (): void => {\n const vehicle = {\n id: new Date().getMilliseconds(),\n placa: addVehicle.placa,\n responsaveis: addVehicle.responsaveis,\n autorizados: addVehicle.autorizados,\n possuiAutorizados: !!addVehicle.autorizados.length,\n possuiResponsaveis: !!addVehicle.responsaveis.length\n }\n\n setTravelAlertAddVehicle(currentState => [...currentState, vehicle])\n handleClose()\n notify.show(`Veículo placa ${vehicle.placa} adicionado com sucesso!`)\n }\n\n const handleReset = (): void => {\n setAddVehicle({\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n handleReset()\n }\n\n return (\n \n \n \n \n Adicionar veículo\n \n\n handleChangeInput('placa', text)}\n value={addVehicle.placa}\n maxLength={30}\n />\n\n \n \n Responsáveis da chave do veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_KEYS\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: currentState.responsaveis.filter(resp => resp.id !== idResp)\n }))\n }}\n />\n \n\n \n \n Autorizados a utilizar o veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: currentState.autorizados.filter(vehicle => vehicle.id !== idResp)\n }))\n }}\n />\n \n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenTravelAlertAddVehicle = atom({\n key: 'isOpenTravelAlertAddVehicle',\n default: false\n})\n\nexport const addVehicleState = atom({\n key: 'addVehicleState',\n default: {\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { IconButton, Surface } from 'react-native-paper'\nimport { AddTravelAlertOsResponsible } from '@/domain/usecases'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\n\ntype ResponsiblesPanelProps = {\n responsibles: AddTravelAlertOsResponsible[]\n onAddNew: () => void\n onRemove: (idResp: number) => void\n variant?: 'tiny' | 'regular'\n disabled?: boolean\n}\n\nexport const ResponsiblesPanel: React.FC = ({\n responsibles,\n onAddNew,\n onRemove,\n variant,\n disabled = false\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n }\n color={disabled ? theme.colors.greyLight : themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {responsibles\n .map((resp, index) => {\n let description = `Telefone 1: ${resp.telefone1}\\r\\n`\n description += `${resp.endereco}`\n\n return (\n \n \n \n \n \n {resp.nome.toUpperCase()}\n \n {variant === 'tiny' &&\n {description}\n }\n \n onRemove(resp.id)}\n />\n \n \n )\n })\n }\n \n {responsibles?.length < 4 && makeAction()}\n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { DateAdapter } from '@/data/protocols'\nimport { DatePicker, Stack, TextInput } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { travelAlertTimePickerState, travelAlertState, isLoadingState } from '@/presentation/pages/TravelAlert/components'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\ntype SelectDateTimeProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SelectDateTime: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const isLoading = useRecoilValue(isLoadingState)\n const setModalTimePicker = useSetRecoilState(travelAlertTimePickerState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setTravelAlert(currentState => ({\n ...currentState,\n dataSaida: dateAdapter.today().toString(),\n dataRetorno: dateAdapter.daysLater(15).toString()\n }))\n }, [])\n\n const handleChangeDate = useCallback((field: keyof TravelAlertParams, date: Date): void => {\n setTravelAlert(currentFilters => ({ ...currentFilters, [field as string]: date.toString() }))\n }, [])\n\n return (\n <>\n \n handleChangeDate('dataSaida', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaSaida' })}>\n \n \n }\n />\n \n \n handleChangeDate('dataRetorno', date ?? dateAdapter.daysLater(15))}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaRetorno' })}>\n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n dateRow: {\n width: '100%',\n gap: 12\n }\n})\n","import { atom } from 'recoil'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\nexport const travelAlertTimePickerState = atom({\n key: 'travelAlertTimePickerState',\n default: {\n isOpen: false,\n currentTime: '' as keyof TravelAlertParams\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\nimport { travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { IconButton, Surface } from 'react-native-paper'\n\ntype VehiclePanelProps = {\n openAddNew: () => void\n onRemove: (idVehicle: number) => void\n}\n\nexport const VehiclePanel: React.FC = ({ openAddNew, onRemove }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const vehicles = useRecoilValue(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n } color={themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {vehicles\n .map((vehicle, index) =>\n \n \n \n \n \n {vehicle.placa.toUpperCase()}\n \n \n onRemove(vehicle.id)}\n />\n \n \n )\n }\n \n {vehicles?.length <= 4 && makeAction()}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n },\n formArea: {\n marginTop: 12,\n width: '100%',\n padding: 24,\n marginHorizontal: 'auto',\n gap: 12\n },\n input: {\n flex: 1,\n marginTop: 12\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n cardInformation: {\n display: 'flex',\n gap: 8\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n gap: 16\n },\n inlineInputs: {\n display: 'flex',\n flexDirection: 'row',\n gap: 16\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { AddTravelAlertOs, AddTravelAlertOsParams, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { TextInput, Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, Card, CardSwitch, TimePicker, NavigationPagesProps, ReactNativePaperTimePros, InputField, VStack, Loading } from '@/presentation/components'\nimport { ModalAddResponsible, ModalAddVehicle, ResponsiblesPanel, VehiclePanel, travelAlertTimePickerState, travelAlertState, SelectDateTime, isOpenTravelAlertAddVehicle, isLoadingState, travelAlertAuthorizedsState, travelAlertResponsiblesKeysState, travelAlertVehiclesState, travelAlertAddResponsibleState, addResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type TravelAlertParams = {\n dataSaida: string\n horaSaida: string\n dataRetorno: string\n horaRetorno: string\n solicitante: string\n email: string\n telefone1: string\n telefone2: string\n recomendacoes: string\n chavesSomenteComCentral: boolean\n possuiAutorizados: boolean\n possuiVeiculosCuidadosCentral: boolean\n}\n\ntype TravelAlertProps = NavigationPagesProps & {\n addTravelAlertOs: AddTravelAlertOs\n dateAdapter: DateAdapter\n}\n\nexport const TravelAlert: React.FC = ({ navigation, dateAdapter, addTravelAlertOs }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [modalTimePicker, setModalTimePicker] = useRecoilState(travelAlertTimePickerState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const [authorizeds, setAuthorizeds] = useRecoilState(travelAlertAuthorizedsState)\n const [responsiblesKeys, setResponsiblesKeys] = useRecoilState(travelAlertResponsiblesKeysState)\n const [vehicles, setVehicles] = useRecoilState(travelAlertVehiclesState)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setOpenAddVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const reset = useResetRecoilState(travelAlertState)\n const resetAuthorizeds = useResetRecoilState(travelAlertAuthorizedsState)\n const resetResponsibleKeys = useResetRecoilState(travelAlertResponsiblesKeysState)\n const resetVehicles = useResetRecoilState(travelAlertVehiclesState)\n const resetAddResponsible = useResetRecoilState(addResponsibleState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const handleAddTravelAlertOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n if (isValidDataTravelAlertOs()) {\n setLoading(true)\n\n const addTravelOsParams: AddTravelAlertOsParams = {\n ...travelAlert,\n cliente: client.codCliente,\n empresa: client.empresa,\n modalidade: client.modalidade,\n responsaveisChave: responsiblesKeys,\n autorizados: authorizeds,\n veiculos: vehicles\n }\n\n addTravelAlertOs\n .add(addTravelOsParams)\n .then(ordem => {\n navigation.navigate(NavigationRoute.ServiceOrders)\n notify.show(`Aviso de viagem registrado com sucesso! Criada OS ${ordem?.toString().padStart(6, '0')}`)\n handleReset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados os campos obrigatórios(*) devem ser preenchidos'))\n }\n }\n\n const isValidDataTravelAlertOs = (): boolean => {\n if (\n !travelAlert.email ||\n !travelAlert.telefone1 ||\n !travelAlert.dataRetorno ||\n !travelAlert.horaRetorno ||\n !travelAlert.dataSaida ||\n !travelAlert.horaSaida ||\n !travelAlert.recomendacoes\n ) {\n return false\n } else {\n return true\n }\n }\n\n const handleChange = (name: keyof TravelAlertParams, value: string | boolean): void => {\n setTravelAlert(currentState => ({ ...currentState, [name]: value }))\n }\n\n const handleChangeTime = useCallback((field: keyof TravelAlertParams, time: ReactNativePaperTimePros): void => {\n const hours = time.hours.toString().padStart(2, '0')\n const minutes = time.minutes.toString().padStart(2, '0')\n\n setTravelAlert(currentFilters => ({\n ...currentFilters,\n [field]: `${hours}:${minutes}`\n }))\n }, [modalTimePicker.currentTime])\n\n const handleClose = useCallback((): void => {\n setModalTimePicker(currentState => ({ ...currentState, isOpen: false }))\n }, [])\n\n const handleReset = (): void => {\n reset()\n resetAuthorizeds()\n resetResponsibleKeys()\n resetVehicles()\n resetAddResponsible()\n }\n\n return (\n \n \n {isLoading\n ? \n : \n }\n />\n \n \n handleChange('solicitante', text)}\n style={styles.input}\n />\n handleChange('email', text)}\n />\n \n\n \n handleChange('telefone1', text)}\n />\n handleChange('telefone2', text)}\n />\n \n\n \n\n \n handleChange('recomendacoes', text)}\n multiline\n numberOfLines={4}\n />\n \n\n \n\n \n handleChange('chavesSomenteComCentral', !travelAlert.chavesSomenteComCentral)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.KEYS\n })\n }}\n onRemove={(idResp) => {\n setResponsiblesKeys(responsiblesKeys.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiAutorizados', !travelAlert.possuiAutorizados)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAuthorizeds(authorizeds.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiVeiculosCuidadosCentral', !travelAlert.possuiVeiculosCuidadosCentral)}\n >\n setOpenAddVehicle(true)}\n onRemove={(idVehicle) => {\n setVehicles(vehicles => vehicles.filter(vehicle => vehicle.id !== idVehicle))\n }}\n />\n \n \n \n }\n \n\n \n \n \n \n\n \n \n {\n handleChangeTime(modalTimePicker.currentTime, time)\n handleClose()\n }}\n onDimiss={handleClose}\n time={{ hours: 12, minutes: 58 }}\n visible={modalTimePicker.isOpen}\n />\n \n )\n}\n","import React from 'react'\nimport { TravelAlert } from '@/presentation/pages/TravelAlert'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddTravelAlertOs } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeTravelAlertFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderDetailModel } from '@/domain/models'\n\nexport const isLoadingServiceOrderDetailState = atom({\n key: 'isLoadingServiceOrderDetailState',\n default: false\n})\n\nexport const serviceOrderDetailState = atom({\n key: 'serviceOrderDetailState',\n default: null as unknown as ServiceOrderDetailModel\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n headerBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 20,\n paddingHorizontal: 10,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n marginBottom: 20\n },\n headerTitle: {\n fontWeight: '600',\n fontSize: 20\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Box, Text, logoEmpresaState } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useErrorHandler, useImage } from '@/presentation/hooks'\nimport { styles } from './styles'\n\nexport const PageHeader: React.FC = () => {\n const { getImage } = useImage()\n const handleError = useErrorHandler()\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const [logoEmpresa, setLogoEmpresa] = useRecoilState(logoEmpresaState)\n\n const textStatus = {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[serviceOrderDetail.status]\n\n useEffect(() => {\n getImage(serviceOrderDetail.logoEmpresa, 'logo')\n .then(setLogoEmpresa)\n .catch(handleError)\n }, [])\n\n return (\n \n \n Logo Empresa\n \n \n OS {serviceOrderDetail.numOS}\n {serviceOrderDetail.tipoOSDescricao}\n {textStatus}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardArea: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n pageInfo: {\n fontWeight: '600',\n fontSize: 20,\n marginBottom: 20,\n marginTop: 20\n },\n bold: {\n fontWeight: '600'\n },\n additionalText: {\n fontSize: 13,\n fontStyle: 'italic'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n totalizerTextBox: {\n marginTop: 10,\n marginBottom: 20,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end'\n },\n cardBase: {\n display: 'flex',\n borderRadius: 4,\n minWidth: 280,\n maxWidth: 600\n },\n cardContent: {\n display: 'flex',\n gap: 8\n },\n imageContainer: {\n maxWidth: 280,\n width: '100%',\n height: 280,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden'\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const ClientInfo: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n Informações do Cliente\n \n \n \n Geral\n \n Nome: {serviceOrderDetail.codCliente} - {serviceOrderDetail.cliente}\n Fantasia: {serviceOrderDetail.fantasia}\n CPF/CNPJ: {serviceOrderDetail.cpf}\n \n \n \n Contato & Endereço\n \n Email: {serviceOrderDetail.emailCliente}\n Telefone: {serviceOrderDetail.fone1}\n Endereço: {serviceOrderDetail.endereco} - {serviceOrderDetail.bairro}, {serviceOrderDetail.cidade} - {serviceOrderDetail.estado}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsInfo: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n Informações da OS\n \n \n \n Observações de Abertura\n \n {serviceOrderDetail.executar}\n \n \n \n Observações de Fechamento\n \n {serviceOrderDetail.obsFechamento}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, CardDetails, CardRow, DataTable, Text, VStack } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsProducts: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoProdutos = serviceOrderDetail.listaProdutos?.reduce(\n (acc, produto) => acc + (produto.unitario * produto.quantidade),\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaProdutos?.length &&\n <>\n Produtos da OS\n \n \n \n \n Quantidade\n Unitário\n Total\n Cobrança\n Motivo\n Entregues\n \n\n {serviceOrderDetail.listaProdutos.map((produto, index) => (\n \n \n Produto: {produto.codProduto} - {produto.descricao}\n \n \n {produto.quantidade.toString().replace('.', ',')} {produto.unidadeMedida}\n {formatCurrency(produto.unitario)}\n {formatCurrency(produto.unitario * produto.quantidade)}\n {produto.cobraCliente ? 'SIM' : 'NÃO'}\n {produto.motivo ? produto.motivo : '-'}\n {produto.entregue}\n \n \n ))}\n \n \n Valor Bruto de Produtos: {formatCurrency(totalBrutoProdutos)}\n Desconto Aplicado na OS: {serviceOrderDetail.pDesconto}% - {formatCurrency(serviceOrderDetail.descontoProd)}\n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n \n \n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsTotalizer: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n return (\n <>\n Valores Gerais\n \n \n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n Total Líquido de Serviços: {formatCurrency(serviceOrderDetail.totalServicos)}\n Total de Descontos: {formatCurrency(serviceOrderDetail.descontoProd + serviceOrderDetail.descontoServ)}\n \n Valor da OS: {formatCurrency(serviceOrderDetail.totalProdutos + serviceOrderDetail.totalServicos)}\n \n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, CardDetails, CardRow, DataTable, Text, VStack } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsTreatmentsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsTreatments: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const handlePastTime = (initialHour: string, finalHour: string): string => {\n const initialTime = new Date(`1970-01-01T${initialHour}`)\n const finalTime = new Date(`1970-01-01T${finalHour}`)\n const durationInMilliseconds = finalTime.getTime() - initialTime.getTime()\n\n const hours = Math.floor(durationInMilliseconds / 3600000)\n const minutes = Math.floor((durationInMilliseconds % 3600000) / 60000)\n const seconds = Math.floor((durationInMilliseconds % 60000) / 1000)\n\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n const handleTotalDuration = (): string => {\n let totalHours = 0\n let totalMinutes = 0\n let totalSeconds = 0\n\n serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .forEach((atendimento) => {\n const [hours, minutes, seconds] = handlePastTime(\n dateAdapter.format(atendimento.hrInicio, 'hh:mm:ss'),\n dateAdapter.format(atendimento.hrFim, 'hh:mm:ss')\n ).split(':').map(Number)\n totalHours += hours\n totalMinutes += minutes\n totalSeconds += seconds\n })\n\n totalMinutes += Math.floor(totalSeconds / 60)\n totalSeconds %= 60\n totalHours += Math.floor(totalMinutes / 60)\n totalMinutes %= 60\n\n return `${totalHours.toString().padStart(2, '0')}:${totalMinutes.toString().padStart(2, '0')}:${totalSeconds.toString().padStart(2, '0')}`\n }\n\n return (\n <>\n {!!serviceOrderDetail.listaAtendimentos?.length &&\n <>\n Atendimentos Feitos na OS\n \n \n \n \n Data\n Início\n Fim\n Responsável\n \n\n {serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .map((atendimento, index) => (\n \n \n Técnico: {atendimento.codTecnico} - {atendimento.tecnico}\n \n \n {dateAdapter.format(atendimento.data, 'DD/MM/yyyy')}\n {dateAdapter.format(atendimento.hrInicio, 'HH:mm:ss')}\n {dateAdapter.format(atendimento.hrFim, 'HH:mm:ss')}\n {atendimento.responsavel}\n \n {atendimento.observacoes &&\n \n \n Observações: {atendimento.observacoes}\n \n \n }\n \n ))}\n \n \n Total de Horas: {handleTotalDuration()}\n \n \n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsSignatures: React.FC = () => {\n const serviceOrderDetails = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetails.assinaturasFechamento?.length &&\n <>\n Assinaturas\n \n {serviceOrderDetails.assinaturasFechamento.map((sign, index) => (\n \n \n \n {sign.nomeArquivo}\n \n \n ))}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardRow, Card } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { theme } from '@/presentation/styles'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsImages: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const serviceOrderDetails = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetails.imagensGerais?.length &&\n <>\n Anexos\n \n {serviceOrderDetails.imagensGerais.map((image, index) => (\n \n \n \n {image.nomeArquivo}\n \n \n {image.nomeArquivo}\n \n \n \n ))}\n \n \n }\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { SafeAreaView, StyleSheet } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect, useRoute } from '@react-navigation/native'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Loading, Box, NoResultMessage } from '@/presentation/components'\nimport { useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { serviceOrderDetailState, PageHeader, ClientInfo, OsProducts, OsTotalizer, OsTreatments, OsSignatures, isLoadingServiceOrderDetailState, OsInfo, OsImages } from '@/presentation/pages/ServiceOrderDetail/components'\n\ntype ServiceOrderDetailProps = {\n getServiceOrderDetail: GetServiceOrderDetail\n dateAdapter: DateAdapter\n}\n\nexport type ServiceOrderDetailUrlModel = {\n param: string\n}\n\nexport const ServiceOrderDetail: React.FC = ({\n getServiceOrderDetail,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const [isLoading, setIsLoading] = useRecoilState(isLoadingServiceOrderDetailState)\n const [serviceOrderDetail, setServiceOrderDetail] = useRecoilState(serviceOrderDetailState)\n\n const { param } = useRoute().params as ServiceOrderDetailUrlModel\n\n useFocusEffect(\n useCallback(() => {\n setIsLoading(true)\n\n const tokenParam = {\n token: param\n }\n\n getServiceOrderDetail\n .getDetail(tokenParam)\n .then(setServiceOrderDetail)\n .catch(handleError)\n .finally(() => setIsLoading(false))\n }, [])\n )\n\n return (\n \n \n {isLoading\n ? \n : serviceOrderDetail?.codInterno\n ? \n \n \n \n \n \n \n \n \n \n : \n }\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n content: {\n marginVertical: 0,\n marginHorizontal: 'auto',\n flex: 1,\n padding: 16,\n width: '100%'\n }\n})\n","import React from 'react'\nimport { ServiceOrderDetail } from '@/presentation/pages/ServiceOrderDetail'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetServiceOrderDetail } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeServiceOrderDetailFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import { TrackModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingTrackState = atom({\n key: 'isLoadingTrackState',\n default: true\n})\n\nexport const trackState = atom({\n key: 'trackState',\n default: [] as TrackModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n cursor: 'pointer',\n flex: 1,\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'auto',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { TrackModel } from '@/domain/models'\nimport { GetTrackDetails, GetTrackDetailsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Text, HStack, VStack } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\ntype CardTrackProps = {\n track: TrackModel\n getTrackDetails: GetTrackDetails\n}\n\nexport const CardTrack: React.FC = ({ track, getTrackDetails }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const client = getClient()\n const setLoading = useSetRecoilState(isLoadingTrackDetailsState)\n const setDetails = useSetRecoilState(trackDetailsState)\n const setOpenDetail = useSetRecoilState(isOpenTrackDetailsState)\n const handleError = useErrorHandler()\n\n const { codInterno, id, placa } = track\n\n const handleDetails = (codInterno: number): void => {\n const params: GetTrackDetailsParams = {\n codCliente: client.codCliente.toString(),\n codInterno: codInterno.toString()\n }\n\n setLoading(true)\n\n getTrackDetails\n .getDetails(params)\n .then(currentDetails => {\n setDetails(currentDetails)\n setOpenDetail(true)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n return (\n handleDetails(codInterno)}>\n \n \n \n \n {placa &&\n \n {placa}\n \n }\n {\n id &&\n \n {id}\n \n }\n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { TrackDetailsModel, FuelType } from '@/domain/models'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Text, VStack, Loading, Divider, Stack, Button } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\nexport const TrackDetails: React.FC = () => {\n const [details, setDetails] = useRecoilState(trackDetailsState)\n const isLoading = useRecoilValue(isLoadingTrackDetailsState)\n const [isOpen, setOpen] = useRecoilState(isOpenTrackDetailsState)\n const theme = useTheme()\n\n const { isMobile } = useMediaQueries()\n\n const { combustivel, cor, id, modelo, placa, ano } = details\n\n const handleFuelName = {\n [FuelType.Biocombustivel]: 'Biocombustivel',\n [FuelType.Diesel]: 'Diesel',\n [FuelType.Eletrico]: 'Eletrico',\n [FuelType.Etanol]: 'Etanol',\n [FuelType.GNV]: 'GNV',\n [FuelType.Gasolina]: 'Gasolina',\n [FuelType.Hibrido]: 'Hibrido'\n }[combustivel]\n\n const handleClose = (): void => {\n setOpen(false)\n setDetails({} as TrackDetailsModel)\n }\n\n return (\n \n \n {isLoading\n ? \n : \n \n Detalhes do track\n \n\n \n\n \n {placa &&\n \n Placa:\n \n {placa}\n \n }\n {id &&\n \n Id:\n {id}\n }\n \n\n \n {cor &&\n \n Cor:\n \n {cor}\n \n }\n {ano &&\n \n Ano:\n {ano}\n }\n \n\n {modelo &&\n \n Modelo:\n \n {modelo}\n \n }\n {combustivel &&\n \n Combustivel:\n \n {handleFuelName}\n \n \n }\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TrackDetailsModel } from '@/domain/models'\n\nexport const isLoadingTrackDetailsState = atom({\n key: 'isLoadingTrackDetailsState',\n default: false\n})\n\nexport const trackDetailsState = atom({\n key: 'trackDetailsState',\n default: {} as TrackDetailsModel\n})\n\nexport const isOpenTrackDetailsState = atom({\n key: 'isOpenTrackDetailsState',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\nimport { Box, PageHeader, CardList } from '@/presentation/components'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { isLoadingTrackState, trackState } from './atom'\nimport { useRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { GetTrackDetails, GetTrackList, GetTrackParams } from '@/domain/usecases'\nimport { CardTrack, TrackDetails } from '@/presentation/pages/Track/components'\n\ntype TrackProps = {\n getTrackList: GetTrackList\n getTrackDetails: GetTrackDetails\n}\n\nexport const Track: React.FC = ({ getTrackList, getTrackDetails }: TrackProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isLoading, setLoading] = useRecoilState(isLoadingTrackState)\n const [tracks, setTracks] = useRecoilState(trackState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const params: GetTrackParams = {\n codCliente: client.codCliente\n }\n\n getTrackList\n .getTrackList(params)\n .then(setTracks)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n }\n />\n \n \n {\n tracks?.map((track, index) => (\n \n ))\n }\n \n \n \n\n \n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { Track } from '@/presentation/pages/Track'\nimport { makeGetTrackDetailsFactory, makeGetTrackListFactory } from '@/main/factories/usecases'\n\nexport const makeTrackFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenContractDetailsState = atom({\n key: 'isOpenContractDetailsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n bold: {\n fontWeight: '600'\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n }\n})\n","import React from 'react'\nimport { Box, InputField, Text, VStack, CardDetails, HStack } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const CompanyCard: React.FC = () => {\n const { getClient } = useAuth()\n\n const client = getClient()\n\n return (\n \n \n \n Dados Gerais\n \n \n \n Razão Social\n { client.nomeCliente }\n \n \n Fantasia\n { client.fantasia ? client.fantasia : 'Não informado' }\n \n \n CPF/CNPJ\n { client.cpfCnpj }\n \n \n \n \n E-mail\n { client.email ? client.email : 'Não informado' }\n \n \n Telefone\n { client.telefone1 || client.telefone2 ? `${client.telefone1} ${client.telefone2}` : 'Não informado' }\n \n \n Endereço\n {\n `${client.enderecoGeral.endereco}, ${client.enderecoGeral.numero} - ` +\n `${client.enderecoGeral.bairro} - ${client.enderecoGeral.cidade}/${client.enderecoGeral.estado}`\n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, Button, HStack, InputField, Text, VStack, CardRow, CardDetails } from '@/presentation/components'\nimport { useAuth, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenContractDetailsState } from '@/presentation/pages/Contract/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype ContractCardProps = {\n dateAdapter: DateAdapter\n}\n\nexport const ContractCard: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const setOpen = useSetRecoilState(isOpenContractDetailsState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n return (\n \n \n \n Contrato {client.numContrato && client.numContrato}\n \n \n \n Início\n {dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')}\n \n \n Dia da Cobrança\n {client.diaVencimento}\n \n \n {client.visualizaDetalhesContrato &&\n \n }\n title='Ver Detalhes'\n testID='contract-card-detalhes'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => setOpen(true)}\n />\n \n }\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { Box, Text, ModalBase, VStack, Divider, HStack, Button, CardDetails, CardRow, Chip } from '@/presentation/components'\nimport { isOpenContractDetailsState } from '@/presentation/pages/Contract/components'\nimport { useAuth, useFormat, useTheme } from '@/presentation/hooks'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype ModalContractDetailsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const ModalContractDetails: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { formatCurrency } = useFormat()\n const [isOpen, setOpen] = useRecoilState(isOpenContractDetailsState)\n const { getClient } = useAuth()\n\n const client = getClient()\n\n const handleClose = (): void => setOpen(false)\n\n const btnLimparStyles = {\n ...styles.btnAction,\n color: theme.colors.textsLight\n }\n\n return (\n \n \n \n \n {client.numContrato ? `Detalhes do contrato ${client.numContrato}` : 'Detalhes da mensalidade' }\n \n \n Início da Vigência\n {dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')}\n \n \n Término da Vigência\n \n {dateAdapter.format(client.terminoContrato, 'DD/MM/YYYY') === '01/01/0001'\n ? 'Não definido'\n : dateAdapter.format(client.terminoContrato, 'DD/MM/YYYY')\n }\n \n \n \n Dia de Cobrança\n {client.diaVencimento}\n \n \n Valor Mensal\n {formatCurrency(client.valorMensal)}\n \n \n Serviços\n \n \n {client.servicosContratadosPortal?.map((servico, index) => (\n \n \n \n {servico.cliSerContDescricao}\n \n \n Quantidade\n {servico.cliSerContQuantidade}\n \n \n Valor Total\n {formatCurrency(servico.cliSerContValor)}\n \n \n Início da Prestação\n \n {dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY') !== '01/01/0001'\n ? dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY')\n : dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')\n }\n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useTheme } from '@/presentation/hooks'\nimport { CompanyCard, ContractCard, ModalContractDetails } from '@/presentation/pages/Contract/components'\nimport { Box, PageHeader, Stack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype ContractProps = {\n dateAdapter: DateAdapter\n}\n\nexport const Contract: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Contract } from '@/presentation/pages/Contract'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeContractFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDebtsYearMenuState = atom({\n key: 'isOpenDebtsYearMenuState',\n default: false\n})\n\nexport type DebtYear = {\n id: number\n descricao: string\n isSelected: boolean\n}\n\nexport const debtsYearState = atom({\n key: 'debtsYearState',\n default: null as unknown as DebtYear[]\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Button, PageHeader, Select } from '@/presentation/components'\nimport { DebtYear, debtsYearState, isOpenDebtsYearMenuState } from '@/presentation/pages/StatementOfDebts/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype StatementOfDebtsProps = {\n openStatementOfDebts: OpenStatementOfDebts\n dateAdapter: DateAdapter\n}\n\nexport const StatementOfDebts: React.FC = ({ openStatementOfDebts, dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isOpenDebtsYearMenu, setOpenDebtsYearMenu] = useRecoilState(isOpenDebtsYearMenuState)\n const [debtsYear, setDebtsYear] = useRecoilState(debtsYearState)\n\n const client = getClient()\n\n const getPossibleDebtsYears = (): void => {\n const currentYear = dateAdapter.today().getFullYear()\n const possibleDebtsYears = []\n\n for (let i = 0; i < 5; i++) {\n const debtYear: DebtYear = {\n id: currentYear - i,\n descricao: `${currentYear - i}`,\n isSelected: false\n }\n\n possibleDebtsYears.push(debtYear)\n }\n\n setDebtsYear(possibleDebtsYears)\n }\n\n const getSelectedDebtYear = (): number => {\n const selectedDebtYear = debtsYear?.find((debt: DebtYear) => debt.isSelected)\n\n return selectedDebtYear ? selectedDebtYear.id : 0\n }\n\n const handleSelectDebtYear = (id: number): void => {\n const updatedDebtsYear = debtsYear.map((debtYear: DebtYear) => {\n if (debtYear.id === id) return { ...debtYear, isSelected: true }\n else if (debtYear.isSelected) return { ...debtYear, isSelected: false }\n\n return debtYear\n })\n\n setDebtsYear(updatedDebtsYear)\n }\n\n const handleOpenStatementOfDebts = (): void => {\n const openParams: OpenStatementOfDebtsParams = {\n codCliente: client.codCliente,\n ano: getSelectedDebtYear()\n }\n\n openStatementOfDebts\n .openPaymentReport(openParams)\n .catch(handleError)\n }\n\n useEffect(() => getPossibleDebtsYears(), [])\n\n return (\n \n \n }\n />\n setOpenDebtsYearMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n \n \n \n setOpenDebtsYearMenu(false)}\n onSelect={(id) => handleSelectDebtYear(id)}\n title={'Selecione o ano da declaração'}\n items={debtsYear}\n />\n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeOpenStatementOfDebts } from '@/main/factories/usecases'\nimport { StatementOfDebts } from '@/presentation/pages/StatementOfDebts'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeStatementOfDebtsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import * as React from 'react'\nimport { createDrawerNavigator } from '@react-navigation/drawer'\nimport { LinkingOptions, NavigationContainer, ParamListBase } from '@react-navigation/native'\nimport { Header, Loading } from '@/presentation/components'\nimport { CustomDrawer } from '../CustomDrawer'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute, screensClientNavigator, screensAdminNavigator } from '@/main/config/router-navigation'\nimport { ADMIN_CODE, useAuth, useThemeClient } from '@/presentation/hooks'\nimport {\n makeAcceptDigitalFactory,\n makeCardFactory,\n makeEventsFactory,\n makeFinancialFactory,\n makeHomeFactory,\n makeNFFactory,\n makeRedesSociaisFactory,\n makeServiceOrdersFactory,\n makeSettingsFactory,\n makeThemeFactory,\n makeSacFactory,\n makeTravelAlertFactory,\n makeServiceOrderDetailFactory,\n makeProspectSettingsFactory,\n makeTrackFactory,\n makeContractFactory,\n makeStatementOfDebtsFactory,\n makeEventsSettingsFactory,\n makeLoginFactory\n} from '@/main/factories/pages'\n\nexport type NavigationPagesProps = {\n navigation: any\n}\n\nconst Drawer = createDrawerNavigator()\n\nexport const NavigationDrawer: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const { getClient, isSignedIn, isAdmin } = useAuth()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const RN_SHOW_MENU_OS = client?.portal?.os ?? false\n const RN_SHOW_MENU_TICKETS = client?.portal?.boleto ?? false\n const RN_SHOW_MENU_NF = client?.portal?.notaFiscal ?? false\n const RN_SHOW_MENU_ACEITE = client?.portal?.aceiteDigital ?? false\n const RN_SHOW_MENU_CARTAO = client?.portal?.cartao ?? false\n const RN_SHOW_MENU_SAC = client?.portal?.sac ?? false\n const RN_SHOW_MENU_MONITORING = client?.portal?.monitoramento ?? false\n const RN_SHOW_MENU_TRAVEL = client?.portal?.viagem ?? false\n const RN_SHOW_MENU_RASTREAMENTO = client?.portal?.rastreamento ?? false\n const RN_SHOW_MENU_CONTRACTS = client?.portal?.contrato ?? false\n\n const linking: LinkingOptions = {\n prefixes: ['/'],\n config: {\n initialRouteName: isAdmin() ? 'Tema' : 'Home' as const,\n screens: {\n ...screensClientNavigator,\n ...screensAdminNavigator\n }\n }\n }\n\n const makeLogin = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Login}\n component={makeLoginFactory}\n />\n \n\n const makeAdminPages = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Theme}\n component={makeThemeFactory} />\n ()\n }}\n name={NavigationRoute.ProspectSettings}\n component={makeProspectSettingsFactory} />\n ()\n }}\n name={NavigationRoute.EventsSettings}\n component={makeEventsSettingsFactory}\n />\n ()\n }}\n name={NavigationRoute.Configs}\n component={makeSettingsFactory} />\n\n ()\n }}\n name={NavigationRoute.SocialMedia}\n component={makeRedesSociaisFactory}\n />\n \n\n const makeUserPages = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Home}\n component={makeHomeFactory}\n />\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.Financial}\n component={makeFinancialFactory}\n />\n }\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.StatementOfDebts}\n component={makeStatementOfDebtsFactory}\n />\n }\n {RN_SHOW_MENU_OS &&\n ()\n }}\n name={NavigationRoute.ServiceOrders}\n component={makeServiceOrdersFactory}\n />\n }\n {RN_SHOW_MENU_NF &&\n ()\n }}\n name={NavigationRoute.Invoices}\n component={makeNFFactory}\n />\n }\n {RN_SHOW_MENU_CARTAO &&\n ()\n }}\n name={NavigationRoute.CreditCard}\n component={makeCardFactory}\n />\n }\n {RN_SHOW_MENU_TRAVEL &&\n ()\n }}\n name={NavigationRoute.TravelAlert}\n component={makeTravelAlertFactory}\n />\n }\n {RN_SHOW_MENU_ACEITE &&\n ()\n }}\n name={NavigationRoute.DigitalAccepts}\n component={makeAcceptDigitalFactory}\n />\n }\n {RN_SHOW_MENU_MONITORING &&\n ()\n }}\n name={NavigationRoute.Monitoring}\n component={makeEventsFactory}\n />\n }\n {RN_SHOW_MENU_SAC &&\n ()\n }}\n name={NavigationRoute.SAC}\n component={makeSacFactory}\n />\n }\n {RN_SHOW_MENU_RASTREAMENTO &&\n ()\n }}\n name={NavigationRoute.Track}\n component={makeTrackFactory}\n />\n }\n {RN_SHOW_MENU_CONTRACTS &&\n ()\n }}\n name={NavigationRoute.Contract}\n component={makeContractFactory}\n />\n }\n \n\n return (\n }>\n isSignedIn() ?
: undefined\n }}\n drawerContent={props => }\n initialRouteName={isAdmin() ? 'Tema' : 'Home'}\n >\n {isSignedIn()\n ? <>\n {!isAdmin() && makeUserPages()}\n {isAdmin() && makeAdminPages()}\n \n : makeLogin()\n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Text, ActivityIndicator } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype LoadingProps = {\n text?: string\n}\n\nexport const Loading: React.FC = ({ text }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {!!text &&\n {text}\n }\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '50vh'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { PortalLogout } from '@/domain/usecases'\nimport { useAuth, useTheme } from '@/presentation/hooks'\nimport { Box, Button, ModalBase, Text, isOpenLogoutState } from '@/presentation/components'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype LogoutProps = {\n portalLogout: PortalLogout\n}\n\nexport const Logout: React.FC = ({\n portalLogout\n}) => {\n const theme = useTheme()\n const { logout, getCurrentClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenLogoutState)\n\n const handleLogout = (): void => {\n const codClient = getCurrentClient()\n logout()\n\n if (codClient?.toString().endsWith('@insidesistemas.com.br')) {\n void portalLogout\n .logout({ cliente: codClient?.toString().replace('@insidesistemas.com.br', ''), version })\n .catch(console.error)\n } else {\n void portalLogout\n .logout({ cliente: codClient, version })\n .catch(console.error)\n }\n setOpen(false)\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Tem certeza que deseja sair?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenLogoutState = atom({\n key: 'isOpenLogoutState',\n default: false\n})\n","import React from 'react'\nimport { Stack } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype InputFieldProps = {\n children: React.ReactNode\n justify?: 'around' | 'between' | 'center' | 'start' | 'end' | 'evenly'\n}\n\nexport const InputField: React.FC = ({ children, justify }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n","import React, { useState, useCallback, useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Entypo, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Button, HStack, IconButton, isOpenInstallationState, localStorageState } from '@/presentation/components'\n\nexport const TIME_IN_EXPIRATION_HOURS = 6\nexport const KEY_TIME_EXPIRATION = 'decline_install'\n\nexport const InstallButton: React.FC = () => {\n const theme = useTheme()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const { isMobile, openInIOS, openInPWA } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useState(false)\n const setOpenModal = useSetRecoilState(isOpenInstallationState)\n\n const themeClient = getThemeClient()\n let deferredPrompt: any = null\n\n useEffect(() => {\n window.addEventListener('beforeinstallprompt', (event) => {\n event.preventDefault()\n deferredPrompt = event\n\n if (window.location.protocol === 'https:' && !openInPWA) {\n const hasDeclineInstall: any = localStorageAdapter.get(KEY_TIME_EXPIRATION)\n if (hasDeclineInstall?.timestamp) {\n const today = new Date().getTime()\n const isExpiredDecline: number = hasDeclineInstall.timestamp\n const diferrenceMilissegundos = Math.abs(isExpiredDecline - today)\n const hoursDifference = diferrenceMilissegundos / (1000 * 60 * 60)\n\n setOpen(hoursDifference > TIME_IN_EXPIRATION_HOURS)\n } else {\n setOpen(true)\n }\n }\n })\n }, [])\n\n const handleInstall = useCallback((): void => {\n if (openInIOS) {\n setOpenModal(true)\n } else {\n deferredPrompt?.prompt()\n setOpen(false)\n }\n }, [deferredPrompt])\n\n const handleCloseButton = (): void => {\n localStorageAdapter.set(KEY_TIME_EXPIRATION, { timestamp: new Date().getTime() })\n setOpen(false)\n }\n\n const containerMobile = {\n right: 60,\n top: 12,\n minWidth: '70%'\n }\n\n const container = {\n right: 60,\n top: 24\n }\n\n return (\n \n \n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n padding: 8,\n borderRadius: 4\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { Image } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, Divider, HStack, KEY_TIME_EXPIRATION, ModalBase, Text, isOpenInstallationState, localStorageState } from '@/presentation/components'\nimport { styles } from './styles'\n\nexport const InstallationSuggestion: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const [isOpen, setOpen] = useRecoilState(isOpenInstallationState)\n\n const handleDeclineInstall = (): void => {\n localStorageAdapter.set(KEY_TIME_EXPIRATION, { timestamp: new Date().getTime() })\n setOpen(false)\n }\n\n const themeClient = getThemeClient()\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Siga os passos para instalação\n \n \n\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenInstallationState = atom({\n key: 'isOpenInstallationState',\n default: false\n})\n","import * as React from 'react'\nimport { Appbar } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { StyleSheet, View, ViewStyle } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Text, LogoTheme, NavigationPagesProps, isOpenUserMenuState, IconButton } from '@/presentation/components'\n\nexport const APP_BAR_HEIGTH = 64\nexport const PADDING_STATUS_BAR_IOS = 24\n\nexport const Header: React.FC = ({ navigation }) => {\n const { isAdmin } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { openInPWA, openInIOS, isMobile } = useMediaQueries()\n const setOpenUserMenu = useSetRecoilState(isOpenUserMenuState)\n\n const themeClient = getThemeClient()\n\n const contentTitleStyle: ViewStyle = {\n alignItems: 'flex-start'\n }\n\n if (!isMobile || isAdmin()) {\n contentTitleStyle.alignItems = 'center'\n }\n\n const ContentTitle: React.FC = () => (\n \n \n navigation.navigate(NavigationRoute.Home)}\n style={{\n ...styles.title,\n ...(isMobile && { fontSize: 18 })\n }}\n variant='h6'\n >\n Portal do Cliente\n \n \n }\n style={ contentTitleStyle }\n />\n )\n\n return (\n \n }\n onPress={() => navigation.toggleDrawer()}\n isLeading\n testID=\"menu-geral\"\n color={themeClient.menuColor}\n />\n \n setOpenUserMenu(true)}\n testID=\"menu-usuario\"\n icon={props => }\n />\n \n )\n}\n\nconst styles = StyleSheet.create({\n appBar: {\n minHeight: APP_BAR_HEIGTH\n },\n logoArea: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'row'\n },\n title: {\n color: '#FFF',\n flex: 1\n }\n})\n","import * as React from 'react'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Image, ImageBackground, StyleSheet } from 'react-native'\nimport { Box, Text } from '@react-native-material/core'\nimport Slider from '@react-native-community/slider'\n\ntype ConfigSliderProps = {\n maximunValue: number\n minimunValue: number\n heightValue?: number\n opacityValue?: number\n isBackgroundImage?: boolean\n}\n\nconst image = { uri: require('../../../../assets/fundo.png') }\n\nexport function ConfigSlider ({ minimunValue, maximunValue, heightValue, opacityValue, isBackgroundImage = false }: ConfigSliderProps): JSX.Element {\n const { getThemeClient } = useThemeClient()\n const [logoHeight, setLogoHeight] = React.useState(isBackgroundImage ? 0.12 : minimunValue)\n const theme = useTheme()\n const themeClient = getThemeClient()\n\n return (\n \n \n {isBackgroundImage ? 'Opacidade:' : 'Tamanho:'}\n {logoHeight.toFixed(2)}\n \n \n {\n isBackgroundImage\n ? \n : \n }\n \n setLogoHeight(event)}\n minimumTrackTintColor={theme.colors.primary}\n maximumTrackTintColor={theme.colors.primary_32}\n thumbTintColor={theme.colors.primary}\n />\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'relative'\n },\n themeContainer: {\n height: 200,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n text: {\n color: '#FFFF'\n },\n titleArea: {\n width: 'calc(100% - 16px)',\n position: 'absolute',\n top: 8,\n right: 8,\n left: 8,\n zIndex: 1000,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '95%',\n minHeight: '60vh'\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n title: {\n flex: 1,\n marginTop: '16px'\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Text } from '@react-native-material/core'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype NoResultMessageProps = {\n text?: string\n}\n\nexport const NoResultMessage: React.FC = ({\n text = 'Não há dados para exibir'\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n \n \n {text}\n \n \n \n )\n}\n","import React from 'react'\nimport AntDesignIcon from '@expo/vector-icons/AntDesign'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { HStack, Text, Button } from '@/presentation/components'\n\ntype PageHeaderProps = {\n text: string\n icon: React.ReactNode\n children?: React.ReactNode\n openFilters?: () => void\n}\n\nexport const PageHeader: React.FC = ({\n text,\n children,\n icon,\n openFilters\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {icon}\n {text}\n \n {children}\n {openFilters &&\n }\n color={themeClient.mainColor}\n onPress={openFilters}\n testID='button-filtros'\n />\n }\n \n )\n}\n","import React from 'react'\n\ntype PixIconProps = {\n color: string\n height?: number\n}\n\nexport const PixIcon: React.FC = ({ color, height = 24 }) => {\n return (\n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Divider } from '@react-native-material/core'\nimport { Box } from '@/presentation/components'\n\ntype FooterProps = {\n children: JSX.Element\n}\n\nexport const Footer: React.FC = ({ children }) => {\n return (\n \n \n {children}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 60,\n backgroundColor: '#FFF',\n marginRight: 16,\n marginLeft: 16\n }\n})\n","import { atom } from 'recoil'\n\nexport const logoEmpresaState = atom({\n key: 'logoEmpresaState',\n default: require('../../../../assets/logo-white.svg')\n})\n","import { useTheme } from '@/presentation/hooks'\nimport * as React from 'react'\nimport { Menu } from 'react-native-paper'\n\ntype MenuActionsProps = {\n children: JSX.Element | JSX.Element[]\n onDismiss: () => void\n anchor: React.ReactNode\n visible: boolean\n}\n\nexport const MenuActions: React.FC = ({ children, onDismiss, anchor, visible }) => {\n const theme = useTheme()\n\n return (\n \n {children}\n \n )\n}\n","import React from 'react'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { HStack, Text } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\n\nexport type MessageBlockStatus = 'info' | 'success' | 'error' | 'warning' | undefined\n\ntype LogoutProps = {\n status?: MessageBlockStatus\n message: string\n}\n\nexport const MessageBlock: React.FC = ({\n status = 'info',\n message\n}) => {\n const theme = useTheme()\n\n const colorStatusStyle = {\n info: theme.colors.info,\n success: theme.colors.success,\n error: theme.colors.error,\n warning: theme.colors.secondary\n }[status]\n\n const colorContainerStatusStyle = {\n info: theme.colors.infoContainer,\n success: theme.colors.successContainer,\n error: theme.colors.errorContainer,\n warning: theme.colors.secondaryContainer\n }[status]\n\n return (\n \n \n \n {message}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Modal } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype ModalBaseProps = {\n visible: boolean\n children: React.ReactNode | React.ReactNode[]\n onClose?: () => void\n maxWidth?: number\n maxHeight?: number | string\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const ModalBase: React.FC = ({ visible, onClose, children }) => {\n const { isMobile, width, height } = useMediaQueries()\n\n return (\n \n \n {children}\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n modalContainer: {\n width: '100%',\n backgroundColor: 'white',\n borderRadius: 4,\n padding: 32,\n alignItems: 'stretch'\n }\n})\n","import React, { useState, useCallback } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Button, HStack, IconButton } from '@/presentation/components'\n\nexport const NotificationButton: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useState(window.Notification?.permission !== 'granted' ?? true)\n\n const themeClient = getThemeClient()\n\n const handleActiveNotifications = useCallback((): void => {\n void Notification.requestPermission().then(permission => {\n console.log(permission)\n if (permission === 'granted') {\n console.log('Permissão de notificação concedida.')\n } else if (permission === 'denied') {\n console.log('Permissão de notificação negada.')\n }\n })\n }, [])\n\n const handleCloseButton = (): void => setOpen(false)\n\n const containerMobile = {\n right: 60,\n top: 12,\n minWidth: '70%'\n }\n\n const container = {\n right: 60,\n top: 24\n }\n\n return (\n \n \n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n padding: 8,\n borderRadius: 4\n }\n})\n","import React, { useState, useEffect } from 'react'\nimport env, { environment } from '@/main/config/env'\nimport { useTheme } from '@/presentation/hooks'\nimport { HStack, Text, Chip } from '@/presentation/components'\nimport { version } from '../../../../package.json'\n\nexport const OutdatedError: React.FC = () => {\n const theme = useTheme()\n const [lastAppVersion, setLastAppVersion] = useState('x.x.x')\n const [lastIntegraVersion, setLastIntegraVersion] = useState('x.x.x')\n const [appOutdated, setAppOutdated] = useState(false)\n const [integraOutdated, setIntegraOutdated] = useState(false)\n\n const getVersion = async (url: string): Promise => {\n try {\n const version = await fetch(url)\n return await version.text()\n } catch (error) {\n console.error(error)\n return 'x.x.x'\n }\n }\n\n useEffect(() => {\n const getAppVersion = async (): Promise => {\n const fileVersionName = 'PortalServiceNewVersion.txt'\n const lastAppVersion = await getVersion(`${env.API_PROJETOS}Projetos/${fileVersionName}`)\n setLastAppVersion(lastAppVersion)\n\n const currentAppVersionValue = parseInt(version.replaceAll('.', ''))\n const lastAppVersionValue = parseInt(lastAppVersion.replaceAll('.', ''))\n if (isNaN(lastAppVersionValue)) {\n setAppOutdated(false)\n } else {\n setAppOutdated(lastAppVersionValue > currentAppVersionValue)\n }\n }\n\n const getIntegraVersion = async (): Promise => {\n const fileVersionName = 'IntegraServiceWebApiVersion.txt'\n const baseUrl = environment === 'development' ? env.API_URL : '/'\n const lastIntegraVersion = await getVersion(`${env.API_PROJETOS}atualizador/integra-service-web-api/latest/${fileVersionName}`)\n const currentIntegraVersion = await getVersion(`${baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`}${fileVersionName}`)\n setLastIntegraVersion(lastIntegraVersion)\n\n const currentIntegraVersionValue = parseInt(currentIntegraVersion.replaceAll('.', ''))\n const lastIntegraVersionValue = parseInt(lastIntegraVersion.replaceAll('.', ''))\n if (isNaN(lastIntegraVersionValue) || isNaN(currentIntegraVersionValue)) {\n setIntegraOutdated(false)\n } else {\n setIntegraOutdated(lastIntegraVersionValue > currentIntegraVersionValue)\n }\n }\n\n void getAppVersion()\n void getIntegraVersion()\n }, [])\n\n const makeAppOutdated = (): JSX.Element =>\n \n \n \n Existe uma versão nova disponível, contate o suporte para atualização\n \n \n \n \n \n \n\nconst makeIntegraOutdated = (): JSX.Element =>\n \n \n \n Existe uma versão nova disponível, contate o suporte para atualização\n \n \n \n \n \n \n\n return (\n <>\n {appOutdated\n ? makeAppOutdated()\n : integraOutdated\n ? makeIntegraOutdated()\n : undefined\n }\n \n )\n}\n","import React, { useEffect } from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { GetRedesSociais, GetTheme, PortalLogout, GetProspectConfigs, UpdatePassword } from '@/domain/usecases'\nimport { useProspectSettings, useThemeClient } from '@/presentation/hooks'\nimport { InstallationSuggestion, Logout, NavigationDrawer, PhoneModal, SnackBarProvider, UpdatePasswordC, phoneModalNumberState, socialMediaState } from '@/presentation/components'\n\ntype RouterProps = {\n getTheme: GetTheme\n getRedesSociais: GetRedesSociais\n getProspectConfigs: GetProspectConfigs\n portalLogout: PortalLogout\n updatePassword: UpdatePassword\n}\n\nconst Router: React.FC = ({\n portalLogout,\n getTheme,\n getRedesSociais,\n getProspectConfigs,\n updatePassword\n}) => {\n const { setThemeClient } = useThemeClient()\n const { startConfig } = useProspectSettings()\n const setSocialMedia = useSetRecoilState(socialMediaState)\n const setPhoneModal = useSetRecoilState(phoneModalNumberState)\n\n useEffect(() => {\n getTheme\n .get({ codigoUnidade: 0 })\n .then(setThemeClient)\n .catch(console.error)\n\n getRedesSociais\n .getRedesSociais()\n .then((socialMedias) => {\n setSocialMedia(socialMedias)\n setPhoneModal(socialMedias.phone)\n })\n .catch(console.error)\n\n getProspectConfigs\n .getAll()\n .then(startConfig)\n .catch(console.error)\n }, [])\n\n return (\n <>\n \n \n \n \n \n \n \n )\n}\n\nexport default Router\n","import React from 'react'\nimport { Linking, Platform } from 'react-native'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { IconButton, HStack, phoneModalNumberState, phoneModalState } from '@/presentation/components'\nimport { useSetRecoilState } from 'recoil'\n\ntype SocialMidiasProps = {\n socialMidias: RedesSociaisModel\n color?: string\n size?: number\n}\n\nexport const SocialMidias: React.FC = ({ socialMidias, color, size }) => {\n const { isMobile } = useMediaQueries()\n const theme = useTheme()\n const setModalOpen = useSetRecoilState(phoneModalState)\n const setModalNumber = useSetRecoilState(phoneModalNumberState)\n\n const handleOpenModal = (): void => {\n setModalOpen(true)\n }\n\n const callNumber = (phone: string): void => {\n let phoneNumber = phone.replace(' ', '')\n if (!['android', 'web'].includes(Platform.OS)) {\n phoneNumber = `telprompt:${phone}`\n setModalNumber(phoneNumber)\n } else {\n phoneNumber = `tel:${phone}`\n setModalNumber(phoneNumber)\n }\n\n if (isMobile) {\n Linking.canOpenURL(phoneNumber)\n .then(async (supported: boolean) => {\n if (!supported) {\n console.error('não suportado')\n } else {\n return await Linking.openURL(phoneNumber)\n }\n })\n .catch(err => console.log(err))\n } else {\n handleOpenModal()\n }\n }\n\n const handleClick = (key: keyof RedesSociaisModel): void => {\n if (key === 'phone') {\n callNumber(socialMidias[key])\n } else if (key === 'whatsapp') {\n void Linking.canOpenURL(`whatsapp://send?phone=55${socialMidias[key].replace(/[\\s-]/g, '')}, '')}`)\n .then(async () => {\n window.open(`https://api.whatsapp.com/send?phone=55${socialMidias[key].replace(/[\\s-]/g, '')}`)\n })\n } else {\n void Linking.canOpenURL(socialMidias[key])\n .then(async () => await Linking.openURL(socialMidias[key]))\n }\n }\n\n return (\n \n {Object.keys(socialMidias).map((props: keyof RedesSociaisModel, index) => (\n !!socialMidias[props] &&\n (}\n onPress={() => handleClick(props)}\n />)\n ))}\n \n )\n}\n","import { atom } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\n\nexport const socialMediaState = atom({\n key: 'socialMediaState',\n default: {} as RedesSociaisModel\n})\n","import * as React from 'react'\nimport { GestureResponderEvent, Animated, StyleSheet } from 'react-native'\nimport { useTheme, useNotify } from '@/presentation/hooks'\nimport { Button, Snackbar } from '@/presentation/components'\n\nexport type SnackBarProps = {\n id: string\n message: string\n variant?: 'success' | 'error' | 'info'\n duration?: number\n delay?: number\n}\n\nconst animateView = (toValue: number, animatedRef: Animated.Value, duration: number, delay?: number): Animated.CompositeAnimation => {\n return Animated.timing(\n animatedRef,\n {\n toValue,\n duration,\n delay,\n useNativeDriver: true\n }\n )\n}\n\nexport function SnackBar ({\n id,\n message,\n variant = 'info'\n}: SnackBarProps): JSX.Element {\n const theme = useTheme()\n const fadeAnime = React.useRef(new Animated.Value(0)).current\n const [isOpen, setOpen] = React.useState(true)\n const notify = useNotify()\n\n React.useEffect(() => {\n const initAnimations = [animateView(1, fadeAnime, 500)]\n Animated.sequence(initAnimations).start()\n }, [])\n\n const handleClose = (event: GestureResponderEvent): void => {\n event.preventDefault()\n Animated.sequence([\n animateView(0, fadeAnime, 300)\n ]).start(() => {\n setOpen(false)\n notify.dimiss(id)\n })\n }\n\n const containerStyles = {\n info: {},\n success: {\n backgroundColor: theme.colors.success,\n color: theme.colors.white\n },\n error: {\n backgroundColor: theme.colors.error,\n color: theme.colors.white\n }\n }[variant]\n\n return (\n \n }\n style={{\n ...containerStyles,\n ...styles.container,\n opacity: fadeAnime,\n display: isOpen ? 'flex' : 'none'\n }}\n />\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n zIndex: 2,\n marginTop: 8\n }\n})\n","import * as React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilValue } from 'recoil'\nimport { SnackBar, snackBarProviderState, Box } from '@/presentation/components'\n\nexport function SnackBarProvider (): JSX.Element {\n const messages = useRecoilValue(snackBarProviderState)\n\n return (\n \n {messages?.map(notify => (\n \n ))}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: '100%',\n height: 'fit-content',\n zIndex: 5,\n paddingTop: 12,\n paddingHorizontal: 24,\n top: 60\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n position: 'absolute',\n zIndex: 1,\n top: 0,\n right: 0,\n overflow: 'hidden',\n display: 'flex'\n },\n modalContainer: {\n backgroundColor: 'white',\n borderRadius: 4\n },\n hidden: {\n display: 'none'\n },\n content: {\n width: '100%',\n backgroundColor: '#FFF'\n },\n title: {\n margin: 12,\n fontSize: 20,\n fontWeight: '500'\n },\n subtitle: {\n marginLeft: 4,\n marginTop: 16,\n marginBottom: 8,\n fontSize: 16,\n fontWeight: '500'\n },\n filters: {\n flex: 1,\n margin: 16\n },\n closeButton: {\n position: 'absolute',\n top: 0,\n right: 12,\n width: 36,\n height: 36\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n inputDatePicker: {\n width: '100%',\n marginTop: 8\n }\n})\n","import * as React from 'react'\nimport { Box, Text, Divider, HStack, Modal, Button, TAB_BOTTOM_CONTAINER_HEIGTH } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { GestureResponderEvent } from 'react-native'\nimport { styles } from './styles'\n\ntype SideFilterDrawerProps = {\n open: boolean\n loading: boolean\n onSubmit: (event: GestureResponderEvent) => void\n onClose: () => void\n resetState: () => void\n children: JSX.Element | JSX.Element[]\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const Drawer: React.FC = ({ open, onSubmit, onClose, children, loading, resetState }) => {\n const theme = useTheme()\n const { isMobile, appBarHeight, width } = useMediaQueries()\n\n const containerStyles = {\n ...styles.modalContainer,\n maxWidth: isMobile ? width - MARGIN_MODALS : 600,\n ...(isMobile\n ? { height: `calc(100vh - ${(appBarHeight + TAB_BOTTOM_CONTAINER_HEIGTH)}px)` }\n : { height: `calc(100vh - ${(appBarHeight + 18)}px)` }),\n ...styles.container,\n padding: isMobile ? 8 : 32,\n margin: isMobile ? 15 : 67\n }\n\n const contentStyles = {\n ...styles.content,\n minWidth: width < 600 ? 'fit-content' : 264\n }\n\n const titleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const btnLimparStyles = {\n ...styles.btnAction,\n color: theme.colors.textsLight\n }\n\n return (\n \n \n \n Filtros\n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\ntype TitleProps = {\n title: string\n}\n\nexport const Title: React.FC = ({ title }) => {\n return (\n {title}\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n maxHeight: 400,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto'\n },\n buttonArea: {\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n buttons: {\n width: '100%',\n marginBottom: 10,\n padding: 3\n }\n})\n","import React from 'react'\nimport { IconButton } from 'react-native-paper'\nimport { Color, TextInputProps } from '@react-native-material/core'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SelectItem = {\n id: number\n descricao: string\n isSelected: boolean\n data?: any\n}\n\nexport type SelectModalProps = {\n title: string\n items: SelectItem[]\n onSelect: (id: number, data: any) => void\n onClose: () => void\n itemsColor?: Color\n isOpen: boolean\n}\n\nexport const Modal: React.FC = ({\n title,\n isOpen,\n items,\n itemsColor,\n onSelect,\n onClose\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n const handleSelect = (id: number, data: any): void => {\n onSelect(id, data)\n onClose()\n }\n\n return (\n \n {title}\n \n {items?.map((item) => (\n handleSelect(item.id, item.data)}\n style={styles.buttons}\n />\n ))}\n \n \n \n \n \n )\n}\n\ntype SelectTriggerProps = {\n label: string\n onOpen: () => void\n description: string\n} & TextInputProps\n\nexport const Trigger: React.FC = ({\n label,\n onOpen,\n description,\n ...TextInputProps\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n }\n {...TextInputProps}\n />\n )\n}\n","import React, { useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { AntDesign } from '@expo/vector-icons'\nimport { IconButton } from 'react-native-paper'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype ScrollToTopButtonProps = {\n scrollToTop: () => void\n targetRef: any\n}\n\nexport const ScrollToTopButton: React.FC = ({ scrollToTop, targetRef }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const options = {\n root: null,\n rootMargin: '60px',\n threshold: 0.25\n }\n\n const observer = new IntersectionObserver(handleIntersection, options)\n\n if (targetRef.current) {\n observer.observe(targetRef.current)\n }\n\n return () => {\n if (targetRef.current) {\n observer.unobserve(targetRef.current)\n }\n }\n }, [])\n\n const handleIntersection = (entries: any): void => {}\n\n return (\n }\n />\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n }\n})\n","import { StyleSheet } from 'react-native'\nimport { StyleProps } from 'react-native-reanimated'\n\nexport const styles = StyleSheet.create({\n input: {\n outlineWidth: 0\n }\n})\n","import React from 'react'\nimport { TextInput as Input, TextInputProps } from '@react-native-material/core'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\nexport const TextInput: React.FC = (props: TextInputProps) => {\n const theme = useTheme()\n\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n userTitle: {\n fontWeight: '500',\n textAlign: 'center'\n },\n itemMenu: {\n fontSize: 14\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useAuth } from '@/presentation/hooks'\nimport { Box, Text, ModalBase, isOpenUserMenuState, VStack, Divider, Menu, isOpenLogoutState, isOpenUpdatePasswordState } from '@/presentation/components'\nimport { styles } from './styles'\n\nexport const UserMenu: React.FC = () => {\n const { getClient, isAdmin } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenUserMenuState)\n const setOpenLogout = useSetRecoilState(isOpenLogoutState)\n const setOpenUpdatePassword = useSetRecoilState(isOpenUpdatePasswordState)\n\n const client = getClient()\n\n const handleClose = (): void => setOpen(false)\n\n const handleOpenUpdatePassword = useCallback((): void => {\n handleClose()\n setOpenUpdatePassword(true)\n }, [])\n\n const handleOnLogout = useCallback((): void => {\n handleClose()\n setOpenLogout(true)\n }, [])\n\n return (\n \n \n \n {client?.nomeCliente}\n {client?.cpfCnpj}\n \n \n {!isAdmin() &&\n }\n />\n }\n }\n />\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenMenuUnitsState = atom({\n key: 'isOpenMenuUnitsState',\n default: false\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Unidade } from '@/domain/models'\nimport { Box, Button, Select } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenMenuUnitsState } from './atom'\nimport { currentUnitSettingsState } from '@/presentation/pages/Settings/components'\n\ntype UnitsSelectorProps = {\n disabled: boolean\n units: Unidade[]\n}\n\nexport const UnitsSelector: React.FC = ({\n disabled,\n units\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useRecoilState(isOpenMenuUnitsState)\n const [currentUnit, setCurrent] = useRecoilState(currentUnitSettingsState)\n\n const themeClient = getThemeClient()\n\n const handleSelectUnit = (currentUnit: number): void => {\n setCurrent(currentUnit)\n setMenuOpen(false)\n }\n\n return (\n \n setMenuOpen(true)}\n loading={disabled}\n loadingIndicatorPosition='overlay'\n title={currentUnit.toString().padStart(4, '0')}\n />\n setMenuOpen(false)}\n items={units?.map(config => ({\n id: config.codigoUnidade,\n descricao: `${config.codigoUnidade.toString().padStart(4, '0')} - ${config.nomeUnidade}`,\n data: config.codigoUnidade,\n isSelected: config.codigoUnidade === currentUnit\n }))}\n onSelect={(data, _) => {\n handleSelectUnit(data)\n }}\n />\n\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenUserMenuState = atom({\n key: 'isOpenUserMenuState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingRecoveryPasswordState = atom({\n key: 'isLoadingRecoveryPasswordState',\n default: true\n})\n\nexport const isOpenRecoveryPasswordState = atom({\n key: 'isOpenRecoveryPasswordState',\n default: true\n})\n\nexport const recoverySettingsState = atom({\n key: 'recoverySettingsState',\n default: {\n cliente: 0,\n novaSenha: '',\n confirmacaoSenha: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { useFocusEffect, useRoute } from '@react-navigation/native'\nimport { UpdateDefaultPassword, UpdateDefaultPasswordParams, ValidatePasswordRecovery } from '@/domain/usecases'\nimport { useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Button, Loading, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { isLoadingRecoveryPasswordState, isOpenRecoveryPasswordState, recoverySettingsState } from './atom'\nimport { styles } from './styles'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { loginState } from '@/presentation/pages/Login/components'\n\ntype RecoveryPasswordProps = {\n navigation: any\n validatePasswordRecovery: ValidatePasswordRecovery\n updateDefaultPassword: UpdateDefaultPassword\n}\n\nexport const RecoveryPasswordC: React.FC = ({ navigation, validatePasswordRecovery, updateDefaultPassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const [state, setState] = useRecoilState(recoverySettingsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingRecoveryPasswordState)\n const [isOpen, setOpen] = useRecoilState(isOpenRecoveryPasswordState)\n const setLogin = useSetRecoilState(loginState)\n const params = useRoute().params as { idRecuperacao: string }\n const handleError = useErrorHandler(() => { setOpen(false) })\n const resetRecoverySettings = useResetRecoilState(recoverySettingsState)\n\n useFocusEffect(\n useCallback(() => {\n if (params?.idRecuperacao) {\n setLoading(true)\n validatePasswordRecovery\n .validate({ idRecuperacao: params?.idRecuperacao })\n .then(clientCode => {\n setState(currentState => ({ ...currentState, cliente: clientCode }))\n setLogin({ username: clientCode.toString(), password: '', recoveryEmail: '' })\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [params?.idRecuperacao])\n )\n\n const handleUpdatePassword = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const updatePasswordParams: UpdateDefaultPasswordParams = {\n novaSenha: state.novaSenha,\n idRecuperacao: params?.idRecuperacao\n }\n\n updateDefaultPassword\n .changePassword(updatePasswordParams)\n .then(() => {\n notify.show('Senha alterada, a nova senha foi gravada com sucesso')\n navigation.navigate(NavigationRoute.Login)\n })\n .catch(handleError)\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }\n\n const handleChangeInput = (name: string, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleClose = (): void => {\n setOpen(false)\n resetRecoverySettings()\n }\n\n return (\n \n \n {(isLoading || !state.cliente)\n ? \n : <>\n Alterar senha\n\n handleChangeInput('novaSenha', text)}\n value={state.novaSenha}\n maxLength={30}\n />\n handleChangeInput('confirmacaoSenha', text)}\n value={state.confirmacaoSenha}\n maxLength={30}\n />\n\n \n \n \n \n \n }\n \n \n )\n}\n","import { UpdatePasswordParams } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenUpdatePasswordState = atom({\n key: 'isOpenUpdatePasswordState',\n default: false\n})\n\nexport const isLoadingUpdatePasswordState = atom({\n key: 'isLoadingUpdatePasswordState',\n default: false\n})\n\nexport type UpdateSettingsStateProps = UpdatePasswordParams & {\n isLoading: boolean\n confirmacaoSenha: string\n}\n\nexport const updateSettingsState = atom({\n key: 'updateSettingsState',\n default: {\n cliente: 0,\n senhaAtual: '',\n novaSenha: '',\n confirmacaoSenha: ''\n }\n})\n\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { UpdateSettingsStateProps, isLoadingUpdatePasswordState, isOpenUpdatePasswordState, updateSettingsState } from './atom'\nimport { styles } from './styles'\n\ntype UpdatePasswordProps = {\n updatePassword: UpdatePassword\n}\n\nexport const UpdatePasswordC: React.FC = ({ updatePassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const setLoading = useSetRecoilState(isLoadingUpdatePasswordState)\n const [state, setState] = useRecoilState(updateSettingsState)\n const [isOpen, setOpen] = useRecoilState(isOpenUpdatePasswordState)\n\n const client = getClient()\n const isSamePassword = state.novaSenha &&\n state.confirmacaoSenha &&\n state.novaSenha === state.confirmacaoSenha\n\n const handleUpdatePassword = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const updatePasswordParams: UpdatePasswordParams = {\n cliente: client.codCliente,\n senhaAtual: state.senhaAtual,\n novaSenha: state.novaSenha,\n confirmacaoSenha: state.confirmacaoSenha\n }\n\n updatePassword\n .update(updatePasswordParams)\n .then(() => notify.show('Senha alterada, a nova senha foi gravada com sucesso'))\n .catch(handleError)\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }\n\n const handleChangeInput = (name: keyof UpdateSettingsStateProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleClose = (): void => {\n setOpen(false)\n handleReset()\n }\n\n const handleReset = (): void => {\n setState(currentValues => ({\n ...currentValues,\n senhaAtual: '',\n novaSenha: '',\n confirmacaoSenha: ''\n }))\n }\n\n return (\n \n \n Alterar senha\n\n handleChangeInput('senhaAtual', text)}\n testID='update-senha-atual'\n value={state.senhaAtual}\n secureTextEntry\n maxLength={30}\n />\n handleChangeInput('novaSenha', text)}\n value={state.novaSenha}\n maxLength={30}\n />\n handleChangeInput('confirmacaoSenha', text)}\n value={state.confirmacaoSenha}\n maxLength={30}\n />\n\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { AntDesign } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, IconButton, NavigationPagesProps } from '@/presentation/components'\n\ntype TabNavigatorProps = NavigationPagesProps & {\n variant?: 'light' | 'theme'\n}\n\nexport const TAB_BOTTOM_CONTAINER_HEIGTH = 64\n\nexport const TabBottomNavigator: React.FC = ({ navigation, variant = 'light' }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n const handleGoHome = (): void => navigation.navigate(NavigationRoute.Home)\n\n const colorsVariant = {\n light: {\n containerColor: theme.colors.white,\n containerIconColor: themeClient.mainColor,\n iconColor: themeClient.menuColor\n },\n theme: {\n containerColor: themeClient.mainColor,\n containerIconColor: 'transparent',\n iconColor: themeClient.menuColor\n }\n }[variant]\n\n return (\n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n padding: 8,\n width: '100%'\n }\n})\n","import env from '@/main/config/env'\n\nexport default (function (c, l, a, r, i, t, y) {\n c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }\n t = l.createElement(r)\n t.async = 1\n t.src = 'https://www.clarity.ms/tag/' + i\n y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y)\n})(window, document, 'clarity', 'script', env.CLARITY_KEY)\n","import React from 'react'\nimport { TimePickerModal } from 'react-native-paper-dates'\n\nexport type ReactNativePaperTimePros = {\n hours: number\n minutes: number\n}\n\ntype TimePickerProps = {\n label: string\n time: ReactNativePaperTimePros\n onConfirm: (time: ReactNativePaperTimePros) => void\n onDimiss: () => void\n visible: boolean\n}\n\nexport const TimePicker: React.FC = ({\n label,\n time,\n onConfirm,\n onDimiss,\n visible\n}) => {\n return (\n <>\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Stack } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype CardRowProps = {\n children: React.ReactNode\n}\n\nexport const CardRow: React.FC = ({ children }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16,\n marginBottom: 10\n }\n})\n","import * as React from 'react'\nimport { CardBase } from '@/presentation/components'\n\ntype CardDetailsProps = {\n children: any\n maxWidth?: number | string\n minWidth?: number | string\n}\n\nexport const CardDetails: React.FC = ({ children, maxWidth, minWidth }: CardDetailsProps) => {\n return (\n \n {children}\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const phoneModalState = atom({\n key: 'phoneModalState',\n default: false\n})\n\nexport const phoneModalNumberState = atom({\n key: 'phoneModalNumberState',\n default: ''\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { phoneModalNumberState, phoneModalState } from './atom'\nimport { ModalBase, Text } from '@/presentation/components'\n\nexport const PhoneModal: React.FC = () => {\n const [modalIsOpen, setModalOpen] = useRecoilState(phoneModalState)\n const phoneNumber = useRecoilValue(phoneModalNumberState)\n\n const treatedPhoneNumber = phoneNumber.replace(/[^0-9.-]/g, '')\n\n const handleCloseModal = (): void => {\n setModalOpen(false)\n }\n\n return (\n \n Contato\n {`Fale conosco através do fone: ${treatedPhoneNumber}`}\n \n )\n}\n","import React from 'react'\nimport { RecoilRoot } from 'recoil'\nimport { Provider as PaperProvider } from 'react-native-paper'\nimport { pt, registerTranslation } from 'react-native-paper-dates'\nimport { theme } from '@/presentation/styles'\nimport { Router, InstallButton, UserMenu } from '@/presentation/components'\nimport { makeGetRedesSociais, makeGetTheme, makePortalLogout, makeGetProspectConfigs, makeUpdatePassword } from '@/main/factories/usecases'\nimport '@/main/config/clarity'\n\nregisterTranslation('pt-BR', pt)\n\nexport default function App (): JSX.Element {\n const isHttps = window.location.protocol === 'https:'\n\n return (\n \n \n \n {isHttps && }\n \n \n \n )\n}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent'\n\nimport App from './App'\n\nregisterRootComponent(App)\n"],"sourceRoot":""}