{"version":3,"sources":["src/domain/models/index.ts","src/data/protocols/http/http-client.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/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/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/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/utils/get-credit-card-type.ts","src/presentation/utils/get-validity-date-format.ts","src/presentation/pages/Cartao/components/atom.ts","src/presentation/pages/Cartao/components/AddNewCreditCard/index.tsx","src/presentation/utils/validity-card-mask.ts","src/presentation/utils/number-mask.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/atom.ts","src/presentation/pages/Financial/components/AddOtherCreditCard/index.tsx","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/CardNF/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/NFService/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/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/OsServices/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTotalizer/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTreatments/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsRemovals/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsWarehouse/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsProblems/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsSignatures/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/EmptyList/styles.ts","src/presentation/components/EmptyList/index.tsx","src/presentation/components/PageHeader/index.tsx","src/presentation/components/PixIcon/index.tsx","src/presentation/components/Footer/index.tsx","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/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","ServiceOrderDetailPriority","ServiceOrderDetailModality","ProblemOrigin","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","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","httpResponse","RemotePortalLogout","_logout","RemoteMetricsLogin","_register","acao","plataforma","RemoteMetricsLogoff","RemoteGetClientByCode","_getByCode","RemoteGetClientContract","_getContract","RemoteUpdatePassword","_update","confirmacaoSenha","_objectWithoutProperties","_excluded","senhaAtual","novaSenha","_yield$this$httpPostC","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","codEndereco","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","codigoCliente","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","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","version","catch","console","setClient","currentState","login","getAddress","adressCode","_client$enderecoAlter","enderecoAlternativo","find","address","getSaveUser","savedUser","username","saveUsername","saveUser","isLoadingState","atom","default","currentUnitState","unitsState","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","CardSwitch","text","bolEntradaConfirmada","handleSwitch","bolExibeOriginal","bolAtualizaBoletos","PaymentAvailableToUpdate","bolOcultaFormasPgto","HidePaymentMethods","exibeAlteracaoCartao","TextInput","mode","activeUnderlineColor","mainColor","label","underlineColorAndroid","underlineColor","emailAlteracaoCartao","onChangeText","maxLength","permitePagamentoCartao","pagamentoCartaoAtivo","Loading","initialGeneralConfigsState","GeneralSettings","testEmail","setGeneralConfig","_useRecoilState3","_useRecoilState4","initialGeneralConfigs","setInitialGeneralConfigs","useEffect","hasChanged","EmailSendingTester","copia","enviaEmailViagem","emailViagem","exibeChavesAvisoViagem","visualizaDetalhesContrato","_useState2","mailSended","setMailSended","_useState3","_useState4","responseMail","setResponseMail","_useRecoilState5","isLoadingTestMailState","_useRecoilState6","isLoadingTestMail","setLoadingTestMail","readonly","Stack","direction","justify","items","trailing","props","MaterialIcons","testEmailParams","then","isValid","finally","loading","disabled","pt","size","Text","sx","ml","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","os","notaFiscal","boleto","monitoramento","viagem","telefonesUteis","documentosUteis","sac","rastreamento","contrato","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","validaCartaoCredito","visualizaFaturaCartaoVencida","assuntoEmailConfirmacaoPgto","atualizaAutomaticoCartao","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","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","ChipFilter","subtitle","paddingHorizontal","paddingVertical","cardBase","CardBase","Content","CardList","isEmpty","textEmpty","textLoading","containerMobile","EmptyList","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","screensClientNavigator","_screensClientNavigat","Home","Financial","Invoices","SAC","DigitalAccepts","ServiceOrders","CreditCard","TravelAlert","PhoneUtils","DocumentsUtils","Monitoring","Track","OsDetail","Contract","StatementOfDebts","ChangePassword","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","setCurrentUnit","getAll","getConfigParams","codUnidade","unitConfig","SafeAreaView","OutdatedError","UnitsSelector","setCurrent","Navigator","screenOptions","tabBarItemStyle","tabBarLabelStyle","tabBarIndicatorStyle","tabBarStyle","Screen","tabBarLabel","component","makeSettingsFactory","layoutStyles","pageContent","scroll","paddingBottom","footerContainer","toolbar","getTheme","_useThemeClient","logoEmpresa","setLogoEmpresa","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","getCreditCardType","creditCardNumber","getValidityDate","dataString","_dataString$split","_dataString$split2","mesStr","anoStr","mes","dia","getDate","toISOString","isEditableState","creditCardState","ccv","mask","numero","vencimento","AddNewCreditCard","creditCard","isEditable","formArea","keyboardType","cleanedText","validityCardMask","card","minHeight","insideLogo","chipCard","mt","letterSpacing","shadowColor","shadowOffset","shadowRadius","ModalModalEditConfirmation","isOpenEditConfirmationState","setCreditCard","setEditable","isOpenAddOtherCreditCardState","otherCreditCardState","errorAddOtherCreditCardState","AddOtherCreditCard","otherCreditCard","setOtherCreditCard","setOpenTicketView","isOpenTicketViewState","setCreditCards","creditCardsState","setError","handleResetCard","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","handleGetPix","codInternoDuplicata","getPix","QRCodeSvg","logoSize","logoBackgroundColor","SideFilters","getTickets","setFilters","errorHandler","setTickets","daysAgo","daysLater","handleChangeDate","field","currentFilters","SideFilter","Drawer","onSubmit","paramsGetTicket","dataInicial","dataFinal","yearsAgo","resetState","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","handleChangeInput","currentValues","handleCloseModal","requestAccess","sendedEmail","ModalUserSelect","authentication","usersSelectState","setUsersSelect","isOpenUserSelect","handleCancel","authToken","handleLogin","List","left","titleStyle","ModalProspectRegistration","prospectRegistration","prospectRegistrationState","isOpenProspectRegistrationState","selectedInterestAreaState","selectedInteresetArea","setSelectedInterestArea","isOpenInterestAreaState","isOpenAreaIntereset","setOpenAreaInterest","isLoadingProspectRegistrationState","interesetArea","resetInteresetArea","fone","emailUrl","cep","numeroEndereco","complemento","cidade","estado","bairro","register","_state$fone","isValidForm","codDEInteresse","fax","LogoTheme","_ref$width","_ref$height","logoInside","loginContent","form","checkboxArea","snackbar","getUser","_useAuth","setSelection","setModalUserSelect","setOpenUserSelect","setOpenForgotPassword","prospectInterestArea","socialMedia","loginWithDocument","getUsersByDocument","clients","loginWithAdministrator","_ref3","onSurfaceVariant","textColor","secureTextEntry","uncheckedColor","dataAuth","toLocaleLowerCase","Email","Senha","makeLoginFactory","isLoadingServiceOrdersState","serviceOrdersState","serviceOrdersConfigsState","bloqueiaAberturaLimite","portalExibeMensagem","portalMensagem","headerStyles","textOrderStyles","CardOs","serviceOrder","setOsView","serviceOrderViewState","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","addNewOs","addNewOsState","isOpenAddNewOS","isLoadingAddNewOS","successNewOs","createSacParams","listNewServiceOrders","resetNewOs","inputContainerStyle","multiline","numberOfLines","addNewOsParams","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","aceiteDigital","ItemMenu","page","_useMediaQueries","iconPage","route","navigate","iconContainer","iconContent","itemUser","ITEMS_EXCLUDES","Menu","itemsMenu","testID","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","nfsConfigState","ocultaInfos","ocultaLink","nfsState","nfState","leaseReceiptState","CardNF","isOpenNfsFiltersState","nfsFiltersState","cardArea","bold","borderBottomWidth","borderBottomColor","emptyNf","LeaseReceipt","openLeaseReceipt","leaseReceipts","_React$useState","React","_React$useState2","currentIndex","setCurrentIndex","setOpenFilters","closeMenu","handleOpenLeaseReceipt","recibo","openLeaseReceiptParams","codigoRecibo","nfNumeroNota","notaNumero","notaSerie","openMenu","notaValor","notaData","toLocaleDateString","NFProduct","openDanfe","nfs","handleOpenDanfe","nf","openDanfeParams","notaProcNFE","NFService","openNfse","nfsConfigs","handleOpenNfse","openNfseParams","codEmpresa","numeroRPS","serieRps","nfse","notaNumeroNFSE","linkConsultaNotaPortal","getNFs","setNFsConfigs","setNFs","setNFSs","setLeaseReceipts","initFilters","nfResult","arrRecibos","arrNF","arrNFS","NotaFiscal","getNFsParams","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","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","serviceOrderDetailState","headerBox","modality","serviceOrderDetail","numOS","M","V","P","I","pageInfo","additionalText","additionalTextBox","borderTopWidth","borderTopColor","totalizerTextBox","ClientInfo","CardRow","CardDetails","fantasia","inscricaoEstadual","responsavel","OsInfo","validaDataZerada","stringValue","orcamento","nomeVendedor","agendada","dataAgenda","previsao","abertura","causaOS","defeito","usuarioAbertura","nomeGetec","veiculoOS","solucaoOS","usuarioFechamento","notaLocacao","executar","observacaoInterna","obsFechamento","OsProducts","_serviceOrderDetail$l","_serviceOrderDetail$l2","totalBrutoProdutos","listaProdutos","reduce","acc","produto","unitario","quantidade","codProduto","cobraCliente","motivo","entregue","pDesconto","descontoProd","totalProdutos","OsServices","totalBrutoServicos","listaOsServicos","servico","total","codServico","pDescontoServico","descontoServ","totalServicos","OsTotalizer","valorCrea","OsTreatments","listaAtendimentos","atendimento","codTecnico","tecnico","hrInicio","hrFim","totalHours","totalMinutes","totalSeconds","_tempoPercorrido$spli","initialHour","finalHour","initialTime","durationInMilliseconds","getTime","Math","floor","seconds","tempoPercorrido","_tempoPercorrido$spli2","calcularDuracaoTotal","OsRemovals","listaProdutosRetirar","retirar","OsWarehouse","listaNFOS","almoxarifado","dataMovimento","estoque","nota","OsProblems","listaProblemas","problema","origem","strProblema","pendencia","OsSignatures","encodeAssinatura","encodeAssinaturaTecnico","src","ServiceOrderDetail","getServiceOrderDetail","setServiceOrderDetail","getDetail","planilha","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","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","NavigationContainer","fallback","drawerActiveTintColor","drawerItemStyle","header","drawerContent","initialRouteName","drawerLabel","drawerIcon","headerShown","ActivityIndicator","Logout","portalLogout","isOpenLogoutState","codClient","InstallButton","setOpenModal","isOpenInstallationState","deferredPrompt","addEventListener","location","protocol","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","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","loadingIndicatorPosition","handleSelectUnit","nomeUnidade","updateSettingsState","isSamePassword","updatePasswordParams","c","l","a","r","t","colorsVariant","light","containerColor","containerIconColor","TimePickerModal","use24HourClock","cancelLabel","modalIsOpen","treatedPhoneNumber","q","createElement","async","getElementsByTagName","parentNode","insertBefore","registerTranslation","registerRootComponent","isHttps","RecoilRoot","PaperProvider"],"mappings":"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","file":"static/js/app.1bbf270b.chunk.js","sourcesContent":["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 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 './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 vencimento: string\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 codInterno: number\n numOS: number\n tipo: ServiceOrderDetailModality\n tipoOSDescricao: string\n status: ServiceOrderDetailStatus\n prioridade: ServiceOrderDetailPriority\n executar: string\n observacaoInterna: string\n obsFechamento: string\n encodeAssinatura: string\n encodeAssinaturaTecnico: string\n listaProdutos: ServiceOrderProducts[]\n listaOsServicos: ServiceOrderServices[]\n listaAtendimentos: ServiceOrderTreatments[]\n listaProdutosRetirar: ServiceOrderRemovals[]\n listaNFOS: ServiceOrderWarehouse[]\n listaProblemas: ServiceOrderProblems[]\n totalProdutos: number\n descontoProd: number\n pDesconto: number\n totalServicos: number\n descontoServ: number\n pDescontoServico: number\n} & ServiceOrderClient & ServiceOrderInfo\n\nexport type ServiceOrderClient = {\n codCliente: number\n cliente: string\n fantasia: string\n cpf: string\n modalidade: string\n inscricaoEstadual: string\n fone1: string\n celular: string\n responsavel: string\n endereco: string\n bairro: string\n cidade: string\n estado: string\n}\n\nexport type ServiceOrderInfo = {\n empresa: string\n orcamento: number\n nomeVendedor: string\n solicitante: string\n previsao: string\n agendada: boolean\n dataAgenda: string\n abertura: string\n causaOS: string\n defeito: string\n usuarioAbertura: string\n nomeTecnico: string\n nomeGetec: string\n veiculoOS: string\n dataFechamento: string\n solucaoOS: string\n usuarioFechamento: string\n notaLocacao: string\n dataEmissao: string\n valorCrea: number\n}\n\nexport type ServiceOrderProducts = {\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}\n\nexport type ServiceOrderServices = {\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 ServiceOrderTreatments = {\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}\n\nexport type ServiceOrderRemovals = {\n descricao: string\n quantidade: number\n unitario: number\n total: number\n cobraCliente: boolean\n motivo: string\n entregue: boolean\n}\n\nexport type ServiceOrderWarehouse = {\n dataMovimento: string\n ocorrencia: string\n estoque: string\n nota: string\n codigo: number\n produto: string\n quantidade: number\n usuario: string\n}\n\nexport type ServiceOrderProblems = {\n origem: ProblemOrigin\n dataInicial: string\n dataFinal: string\n pendencia: string\n strProblema: string\n}\n\nexport enum ServiceOrderDetailStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport enum ServiceOrderDetailPriority {\n Alta = 'A',\n Normal = 'N',\n Baixa = 'B'\n}\n\nexport enum ServiceOrderDetailModality {\n ManutencaoCorretiva = 'M',\n VendasInstalacao = 'V',\n ManutenCaoPreventiva = 'P',\n VendasAmpliacao = 'A',\n RetiradaEquipamento = 'R',\n Interna = 'I'\n}\n\nexport enum ProblemOrigin {\n Empresa = 'E',\n Cliente = 'C',\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'\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\": 396,\n\t\"./af.js\": 396,\n\t\"./ar\": 397,\n\t\"./ar-dz\": 398,\n\t\"./ar-dz.js\": 398,\n\t\"./ar-kw\": 399,\n\t\"./ar-kw.js\": 399,\n\t\"./ar-ly\": 400,\n\t\"./ar-ly.js\": 400,\n\t\"./ar-ma\": 401,\n\t\"./ar-ma.js\": 401,\n\t\"./ar-ps\": 402,\n\t\"./ar-ps.js\": 402,\n\t\"./ar-sa\": 403,\n\t\"./ar-sa.js\": 403,\n\t\"./ar-tn\": 404,\n\t\"./ar-tn.js\": 404,\n\t\"./ar.js\": 397,\n\t\"./az\": 405,\n\t\"./az.js\": 405,\n\t\"./be\": 406,\n\t\"./be.js\": 406,\n\t\"./bg\": 407,\n\t\"./bg.js\": 407,\n\t\"./bm\": 408,\n\t\"./bm.js\": 408,\n\t\"./bn\": 409,\n\t\"./bn-bd\": 410,\n\t\"./bn-bd.js\": 410,\n\t\"./bn.js\": 409,\n\t\"./bo\": 411,\n\t\"./bo.js\": 411,\n\t\"./br\": 412,\n\t\"./br.js\": 412,\n\t\"./bs\": 413,\n\t\"./bs.js\": 413,\n\t\"./ca\": 414,\n\t\"./ca.js\": 414,\n\t\"./cs\": 415,\n\t\"./cs.js\": 415,\n\t\"./cv\": 416,\n\t\"./cv.js\": 416,\n\t\"./cy\": 417,\n\t\"./cy.js\": 417,\n\t\"./da\": 418,\n\t\"./da.js\": 418,\n\t\"./de\": 419,\n\t\"./de-at\": 420,\n\t\"./de-at.js\": 420,\n\t\"./de-ch\": 421,\n\t\"./de-ch.js\": 421,\n\t\"./de.js\": 419,\n\t\"./dv\": 422,\n\t\"./dv.js\": 422,\n\t\"./el\": 423,\n\t\"./el.js\": 423,\n\t\"./en-au\": 424,\n\t\"./en-au.js\": 424,\n\t\"./en-ca\": 425,\n\t\"./en-ca.js\": 425,\n\t\"./en-gb\": 426,\n\t\"./en-gb.js\": 426,\n\t\"./en-ie\": 427,\n\t\"./en-ie.js\": 427,\n\t\"./en-il\": 428,\n\t\"./en-il.js\": 428,\n\t\"./en-in\": 429,\n\t\"./en-in.js\": 429,\n\t\"./en-nz\": 430,\n\t\"./en-nz.js\": 430,\n\t\"./en-sg\": 431,\n\t\"./en-sg.js\": 431,\n\t\"./eo\": 432,\n\t\"./eo.js\": 432,\n\t\"./es\": 433,\n\t\"./es-do\": 434,\n\t\"./es-do.js\": 434,\n\t\"./es-mx\": 435,\n\t\"./es-mx.js\": 435,\n\t\"./es-us\": 436,\n\t\"./es-us.js\": 436,\n\t\"./es.js\": 433,\n\t\"./et\": 437,\n\t\"./et.js\": 437,\n\t\"./eu\": 438,\n\t\"./eu.js\": 438,\n\t\"./fa\": 439,\n\t\"./fa.js\": 439,\n\t\"./fi\": 440,\n\t\"./fi.js\": 440,\n\t\"./fil\": 441,\n\t\"./fil.js\": 441,\n\t\"./fo\": 442,\n\t\"./fo.js\": 442,\n\t\"./fr\": 443,\n\t\"./fr-ca\": 444,\n\t\"./fr-ca.js\": 444,\n\t\"./fr-ch\": 445,\n\t\"./fr-ch.js\": 445,\n\t\"./fr.js\": 443,\n\t\"./fy\": 446,\n\t\"./fy.js\": 446,\n\t\"./ga\": 447,\n\t\"./ga.js\": 447,\n\t\"./gd\": 448,\n\t\"./gd.js\": 448,\n\t\"./gl\": 449,\n\t\"./gl.js\": 449,\n\t\"./gom-deva\": 450,\n\t\"./gom-deva.js\": 450,\n\t\"./gom-latn\": 451,\n\t\"./gom-latn.js\": 451,\n\t\"./gu\": 452,\n\t\"./gu.js\": 452,\n\t\"./he\": 453,\n\t\"./he.js\": 453,\n\t\"./hi\": 454,\n\t\"./hi.js\": 454,\n\t\"./hr\": 455,\n\t\"./hr.js\": 455,\n\t\"./hu\": 456,\n\t\"./hu.js\": 456,\n\t\"./hy-am\": 457,\n\t\"./hy-am.js\": 457,\n\t\"./id\": 458,\n\t\"./id.js\": 458,\n\t\"./is\": 459,\n\t\"./is.js\": 459,\n\t\"./it\": 460,\n\t\"./it-ch\": 461,\n\t\"./it-ch.js\": 461,\n\t\"./it.js\": 460,\n\t\"./ja\": 462,\n\t\"./ja.js\": 462,\n\t\"./jv\": 463,\n\t\"./jv.js\": 463,\n\t\"./ka\": 464,\n\t\"./ka.js\": 464,\n\t\"./kk\": 465,\n\t\"./kk.js\": 465,\n\t\"./km\": 466,\n\t\"./km.js\": 466,\n\t\"./kn\": 467,\n\t\"./kn.js\": 467,\n\t\"./ko\": 468,\n\t\"./ko.js\": 468,\n\t\"./ku\": 469,\n\t\"./ku-kmr\": 470,\n\t\"./ku-kmr.js\": 470,\n\t\"./ku.js\": 469,\n\t\"./ky\": 471,\n\t\"./ky.js\": 471,\n\t\"./lb\": 472,\n\t\"./lb.js\": 472,\n\t\"./lo\": 473,\n\t\"./lo.js\": 473,\n\t\"./lt\": 474,\n\t\"./lt.js\": 474,\n\t\"./lv\": 475,\n\t\"./lv.js\": 475,\n\t\"./me\": 476,\n\t\"./me.js\": 476,\n\t\"./mi\": 477,\n\t\"./mi.js\": 477,\n\t\"./mk\": 478,\n\t\"./mk.js\": 478,\n\t\"./ml\": 479,\n\t\"./ml.js\": 479,\n\t\"./mn\": 480,\n\t\"./mn.js\": 480,\n\t\"./mr\": 481,\n\t\"./mr.js\": 481,\n\t\"./ms\": 482,\n\t\"./ms-my\": 483,\n\t\"./ms-my.js\": 483,\n\t\"./ms.js\": 482,\n\t\"./mt\": 484,\n\t\"./mt.js\": 484,\n\t\"./my\": 485,\n\t\"./my.js\": 485,\n\t\"./nb\": 486,\n\t\"./nb.js\": 486,\n\t\"./ne\": 487,\n\t\"./ne.js\": 487,\n\t\"./nl\": 488,\n\t\"./nl-be\": 489,\n\t\"./nl-be.js\": 489,\n\t\"./nl.js\": 488,\n\t\"./nn\": 490,\n\t\"./nn.js\": 490,\n\t\"./oc-lnc\": 491,\n\t\"./oc-lnc.js\": 491,\n\t\"./pa-in\": 492,\n\t\"./pa-in.js\": 492,\n\t\"./pl\": 493,\n\t\"./pl.js\": 493,\n\t\"./pt\": 494,\n\t\"./pt-br\": 495,\n\t\"./pt-br.js\": 495,\n\t\"./pt.js\": 494,\n\t\"./ro\": 496,\n\t\"./ro.js\": 496,\n\t\"./ru\": 497,\n\t\"./ru.js\": 497,\n\t\"./sd\": 498,\n\t\"./sd.js\": 498,\n\t\"./se\": 499,\n\t\"./se.js\": 499,\n\t\"./si\": 500,\n\t\"./si.js\": 500,\n\t\"./sk\": 501,\n\t\"./sk.js\": 501,\n\t\"./sl\": 502,\n\t\"./sl.js\": 502,\n\t\"./sq\": 503,\n\t\"./sq.js\": 503,\n\t\"./sr\": 504,\n\t\"./sr-cyrl\": 505,\n\t\"./sr-cyrl.js\": 505,\n\t\"./sr.js\": 504,\n\t\"./ss\": 506,\n\t\"./ss.js\": 506,\n\t\"./sv\": 507,\n\t\"./sv.js\": 507,\n\t\"./sw\": 508,\n\t\"./sw.js\": 508,\n\t\"./ta\": 509,\n\t\"./ta.js\": 509,\n\t\"./te\": 510,\n\t\"./te.js\": 510,\n\t\"./tet\": 511,\n\t\"./tet.js\": 511,\n\t\"./tg\": 512,\n\t\"./tg.js\": 512,\n\t\"./th\": 513,\n\t\"./th.js\": 513,\n\t\"./tk\": 514,\n\t\"./tk.js\": 514,\n\t\"./tl-ph\": 515,\n\t\"./tl-ph.js\": 515,\n\t\"./tlh\": 516,\n\t\"./tlh.js\": 516,\n\t\"./tr\": 517,\n\t\"./tr.js\": 517,\n\t\"./tzl\": 518,\n\t\"./tzl.js\": 518,\n\t\"./tzm\": 519,\n\t\"./tzm-latn\": 520,\n\t\"./tzm-latn.js\": 520,\n\t\"./tzm.js\": 519,\n\t\"./ug-cn\": 521,\n\t\"./ug-cn.js\": 521,\n\t\"./uk\": 522,\n\t\"./uk.js\": 522,\n\t\"./ur\": 523,\n\t\"./ur.js\": 523,\n\t\"./uz\": 524,\n\t\"./uz-latn\": 525,\n\t\"./uz-latn.js\": 525,\n\t\"./uz.js\": 524,\n\t\"./vi\": 526,\n\t\"./vi.js\": 526,\n\t\"./x-pseudo\": 527,\n\t\"./x-pseudo.js\": 527,\n\t\"./yo\": 528,\n\t\"./yo.js\": 528,\n\t\"./zh-cn\": 529,\n\t\"./zh-cn.js\": 529,\n\t\"./zh-hk\": 530,\n\t\"./zh-hk.js\": 530,\n\t\"./zh-mo\": 531,\n\t\"./zh-mo.js\": 531,\n\t\"./zh-tw\": 532,\n\t\"./zh-tw.js\": 532\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 = 731;","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","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, 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 httpResponse = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/LoginPortalService`,\n params\n })\n\n switch (httpResponse.statusCode) {\n case HttpStatusCode.ok: return httpResponse.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 { 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 (linkAutenticidade) {\n window.open(linkAutenticidade, '_blank')\n return\n } else if (!dataParams.utilizarDevExpress) {\n return\n }\n\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 }\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 codEndereco: 0\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/os/detalhes`,\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 { 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\n if (isExpired) {\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 currentUnitState = atom({\n key: 'currentUnitSettingsState',\n default: 0\n})\n\nexport const unitsState = 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 { 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, 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 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): 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 \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 {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('os', !menuAccessPermissionsConfigs.os)}\n />\n handleChangeSetting('notaFiscal', !menuAccessPermissionsConfigs.notaFiscal)}\n />\n handleChangeSetting('boleto', !menuAccessPermissionsConfigs.boleto)}\n />\n {\n handleChangeSetting('monitoramento', !menuAccessPermissionsConfigs.monitoramento)\n }}\n />\n handleChangeSetting('viagem', !menuAccessPermissionsConfigs.viagem)}\n />\n handleChangeSetting('cartao', !menuAccessPermissionsConfigs.cartao)}\n />\n handleChangeSetting('telefonesUteis', !menuAccessPermissionsConfigs.telefonesUteis)}\n />\n handleChangeSetting('documentosUteis', !menuAccessPermissionsConfigs.documentosUteis)}\n />\n handleChangeSetting('sac', !menuAccessPermissionsConfigs.sac)}\n />\n handleChangeSetting('rastreamento', !menuAccessPermissionsConfigs.rastreamento)}\n />\n handleChangeSetting('contrato', !menuAccessPermissionsConfigs.contrato)}\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 } 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 currentUnitState = atom({\n key: 'currentUnitThemeState',\n default: 0\n})\n\nexport const unitsState = 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 { currentUnitState, isLoadingState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnSaveChangeThemeState } from './atom'\nimport { styles } from './styles'\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(currentUnitState)\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, EmptyList, 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 } 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 showIfValueFalsy?: boolean\n}\n\nexport const CardSwitch: React.FC = ({\n text,\n children,\n value,\n handleSwitch,\n readonly,\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 {text}\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","export 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 = 'detalhe-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}\n\nexport const screensClientNavigator = {\n [NavigationRoute.Home]: NavigationRoute.Home.toString(),\n [NavigationRoute.Financial]: NavigationRoute.Financial.toString(),\n [NavigationRoute.Invoices]: NavigationRoute.Invoices.toString(),\n [NavigationRoute.SAC]: NavigationRoute.SAC.toString(),\n [NavigationRoute.DigitalAccepts]: NavigationRoute.DigitalAccepts.toString(),\n [NavigationRoute.ServiceOrders]: NavigationRoute.ServiceOrders.toString(),\n [NavigationRoute.CreditCard]: NavigationRoute.CreditCard.toString(),\n [NavigationRoute.TravelAlert]: NavigationRoute.TravelAlert.toString(),\n [NavigationRoute.PhoneUtils]: NavigationRoute.PhoneUtils.toString(),\n [NavigationRoute.DocumentsUtils]: NavigationRoute.DocumentsUtils.toString(),\n [NavigationRoute.Monitoring]: NavigationRoute.Monitoring.toString(),\n [NavigationRoute.Track]: NavigationRoute.Track.toString(),\n [NavigationRoute.OsDetail]: NavigationRoute.OsDetail.toString(),\n [NavigationRoute.Contract]: NavigationRoute.Contract.toString(),\n [NavigationRoute.StatementOfDebts]: NavigationRoute.StatementOfDebts.toString(),\n [NavigationRoute.ChangePassword]: NavigationRoute.ChangePassword.toString()\n}\n\nexport const screensAdminNavigator = {\n [NavigationRoute.Login]: NavigationRoute.Login.toString(),\n [NavigationRoute.Theme]: NavigationRoute.Theme.toString(),\n [NavigationRoute.Configs]: NavigationRoute.Configs.toString(),\n [NavigationRoute.SocialMedia]: NavigationRoute.SocialMedia.toString(),\n [NavigationRoute.ProspectSettings]: NavigationRoute.ProspectSettings.toString(),\n [NavigationRoute.EventsSettings]: 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 } 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, unitsState, currentUnitState } 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(unitsState)\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitState)\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: units[0].codigoUnidade\n }\n\n const unitConfig = await getUnitConfigs.getAll(getConfigParams)\n startConfig(unitConfig)\n\n setCurrentUnit(units[0].codigoUnidade)\n setUnits(units)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\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 { setCurrentUnit(currentUnit) }}\n units={units}\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, currentUnitState, isLoadingState, unitsState } from '@/presentation/pages/Theme/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(currentUnitState)\n const [units, setUnits] = useRecoilState(unitsState)\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\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 )\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 { setCurrentUnit(currentUnit) }}\n units={units}\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, EmptyList, 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","import { CardFlagsTypes } from '@/domain/models'\n\nexport 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","export const getValidityDate = (dataString: string): string => {\n const [mesStr, anoStr] = dataString.split('/')\n const mes = parseInt(mesStr)\n const ano = parseInt(anoStr)\n const dataAtual = new Date()\n const dia = dataAtual.getDate()\n const data = new Date(ano, mes - 1, dia)\n return data.toISOString()\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 vencimento: ''\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { CreditCardModel } from '@/domain/models'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, TextInput, VStack } from '@/presentation/components'\nimport { numberMask, validityCardMask } from '@/presentation/utils'\n\ntype AddNewCreditCardProps = {\n creditCard: CreditCardModel\n onChange: (field: string, value: string) => void\n isLoading: boolean\n isEditable: boolean\n}\n\nexport const AddNewCreditCard: React.FC = ({\n creditCard,\n onChange,\n isEditable,\n isLoading\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n onChange('nome', text)}\n />\n onChange('numero', text)}\n />\n \n }\n onChangeText={(text) => onChange('expiracao', validityCardMask(text))}\n />\n onChange('ccv', numberMask(text))}\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","export const validityCardMask = (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","export const numberMask = (value: string): string => {\n return value.replace(/[^0-9]/g, '')\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 { 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 vencimento: ''\n }\n})\n\nexport const errorAddOtherCreditCardState = atom({\n key: 'errorAddOtherCreditCardState',\n default: ''\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, cardMaskByFlag } from '@/domain/models'\nimport { Button, HStack, ModalBase, Text, VStack } from '@/presentation/components'\nimport { getCreditCardType } from '@/presentation/utils'\nimport { AddNewCreditCard, CreditCard } from '@/presentation/pages/Cartao/components'\nimport { useAuth, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { creditCardsState, isOpenTicketViewState } from '@/presentation/pages/Financial/components'\nimport { errorAddOtherCreditCardState, isOpenAddOtherCreditCardState, otherCreditCardState } from './atom'\n\nexport const AddOtherCreditCard: React.FC = () => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useRecoilState(isOpenAddOtherCreditCardState)\n const [otherCreditCard, setOtherCreditCard] = useRecoilState(otherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const setCreditCards = useSetRecoilState(creditCardsState)\n const [error, setError] = useRecoilState(errorAddOtherCreditCardState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const handleChange = (name: string, value: string): void => {\n setOtherCreditCard((prevState) => ({\n ...prevState,\n [name]: value,\n type: getCreditCardType(prevState.numero),\n mask: cardMaskByFlag[prevState.type],\n email: client.email\n }))\n setError('')\n }\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.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 { 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 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(message => {\n notify.info(message)\n })\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 } 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 const [ticket, setTicket] = useState()\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 (pix) {\n notify.show('O pix foi copiado para área de transferência')\n Clipboard.setString(pix)\n handleClose()\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 \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.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 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 if (filters.situacao === 'Todas') {\n paramsGetTicket.dataInicial = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n paramsGetTicket.dataFinal = dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), '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.daysAgo(GetTickets.RN.DEFAULT_DAYS_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.daysAgo(GetTickets.RN.DEFAULT_DAYS_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({\n codigo: state.username,\n email: state.recoveryEmail\n })\n .then(sendedEmail => {\n if (sendedEmail) {\n notify.show('Informações enviados por e-mail')\n reset()\n } else {\n notify.show('O e-mail precisa ser o mesmo utilizado no cadastro. Caso não se lembre entre em contato com a nossa equipe.', {\n variant: 'error'\n })\n }\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('username', text)}\n value={state.username}\n />\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, useState } from 'react'\nimport { Image } from 'react-native'\nimport { environment } from '@/main/config/env'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\n\ntype LogoThemeProps = {\n height?: number\n width?: number\n}\n\nexport const LogoTheme: React.FC = ({ width = 60, height = 24 }) => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useState('')\n\n const themeClient = getThemeClient()\n const logoInside = environment === 'production' && logoEmpresa\n ? { uri: logoEmpresa }\n : require('../../../../assets/logo-white.svg')\n\n useEffect(() => {\n themeClient.imageLogo && environment === 'production' &&\n getImage(themeClient.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n }, [])\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 } 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 } from '@/domain/usecases'\nimport { useAuth, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { BackgroundTheme, Box, Button, Divider, HStack, 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 getUser: GetUserByDocument\n authentication: Authentication\n authenticationAdmin: AuthenticationAdmin\n forgotPassword: ForgotPassword\n prospectRegistration: ProspectRegistration\n}\n\nexport const Login: React.FC = ({\n getUser,\n authentication,\n authenticationAdmin,\n forgotPassword,\n prospectRegistration\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 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 />\n handleChangeInput('password', text)}\n value={state.password}\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 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 } from '@/main/factories/usecases'\n\nexport const makeLoginFactory = (): 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 {'Observacaçõ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}, ${address.numero} - ${address.bairro}`}\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 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 } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, TextInput, ModalBase, HStack } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { addNewOsState, isLoadingAddNewOS, isOpenAddNewOS, 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 { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [state, setState] = 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\n const client = getClient()\n\n const handleChangeInput = (name: keyof AddNewOsProps, value: string): void => {\n setState(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: state.solicitante,\n observacoes: state.observacoes,\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 resetNewOs()\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 codEndereco: 0\n },\n ...serviceOrders\n ]\n setServiceOrders(listNewServiceOrders)\n notify.success('Ordem de serviço gravada com sucesso')\n }\n\n const resetNewOs = (): void => {\n setLoading(false)\n setState({\n observacoes: '',\n solicitante: ''\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n resetNewOs()\n }\n\n return (\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={state.solicitante}\n maxLength={30}\n />\n\n handleChangeInput('observacoes', text)}\n value={state.observacoes}\n multiline\n numberOfLines={5}\n />\n\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 addNewOsState = atom({\n key: 'addNewOs',\n default: {\n solicitante: '',\n observacoes: ''\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 >\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, 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 { getCreditCardType, getValidityDate } from '@/presentation/utils'\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 [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 handleChangeCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpenEditConfirmation(true)\n }\n\n const isValidDataCard = (): boolean => {\n if (\n !creditCard.nome ||\n !creditCard.numero ||\n !creditCard.expiracao ||\n !creditCard.ccv ||\n creditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }\n\n const handleSaveCreditCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard((currentState) => ({\n ...currentState,\n ...(currentState.expiracao && { vencimento: getValidityDate(currentState.expiracao) })\n }))\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 vencimento: creditCard.vencimento\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 handleChange = (name: string, value: string): void => {\n setCreditCard((prevState) => ({\n ...prevState,\n [name]: value,\n type: getCreditCardType(prevState.numero),\n mask: cardMaskByFlag[prevState.type],\n email: client.email\n }))\n }\n\n const handleResetCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard((prevState) => ({\n ...prevState,\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 \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 />\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)}>\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 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 * as React from 'react'\nimport { CardBase } from '@/presentation/components'\n\ntype CardNFProps = {\n children: any\n}\n\nexport const CardNF: React.FC = ({ children }: CardNFProps) => {\n return (\n \n {children}\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 } from '@/presentation/components'\nimport { CardNF, 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 style={{ width: 24, height: 24 }}\n icon={(props: any) => }>\n }\n >\n handleOpenLeaseReceipt(event, recibo)}\n title=\"Visualizar Recibo de Locação\"\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 } from '@/presentation/components'\nimport { CardNF, 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 icon={(props: any) => }>\n }>\n handleOpenDanfe(event, nf)}\n title=\"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, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, CardList, PageHeader } from '@/presentation/components'\nimport { CardNF, nfsState, isLoadingNfState, nfsConfigState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, 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 notify = useNotify()\n const { formatCurrency } = useFormat()\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const nfsConfigs = useRecoilValue(nfsConfigState)\n const nfs = useRecoilValue(nfsState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\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 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(() => setLoading(false))\n }, [])\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 {nfse.notaNumeroNFSE}/{nfse.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\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 leadingIcon={props => }\n />\n : <>\n }\n {nfse.linkConsultaNotaPortal\n ? window.open(nfse.linkConsultaNotaPortal, '_blank')}\n title=\"Link para consulta da NFSe\"\n leadingIcon={props => }\n />\n : <>\n }\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 )\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 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 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 { EmptyList } 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\ntype ServiceOrderDetailProps = ServiceOrderDetailModel & {\n isLoading: boolean\n}\n\nexport const serviceOrderDetailState = atom({\n key: 'serviceOrderDetail',\n default: {\n ...null as unknown as ServiceOrderDetailModel,\n isLoading: false\n }\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 from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, LogoTheme, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { ServiceOrderDetailModality, ServiceOrderDetailStatus } from '@/domain/models'\nimport { styles } from './styles'\n\nexport const PageHeader: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const makeTextStatus = (status: ServiceOrderDetailStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n const makeTextModality = (modality: ServiceOrderDetailModality): string => {\n return {\n M: 'Manutenção Corretiva',\n V: 'Vendas Instalação',\n P: 'Manutenção Preventiva',\n A: 'Vendas Ampliação',\n R: 'Retirada Equipamento',\n I: 'Interna'\n }[modality]\n }\n\n return (\n \n \n \n \n \n OS {serviceOrderDetail.numOS}\n {makeTextModality(serviceOrderDetail.tipo)}\n {makeTextStatus(serviceOrderDetail.status)}\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})\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 CNPJ: {serviceOrderDetail.cpf}\n \n Modalidade: {serviceOrderDetail.modalidade}\n Inscrição estadual: {serviceOrderDetail.inscricaoEstadual}\n \n \n \n \n Contato & Endereço\n \n Telefone: {serviceOrderDetail.fone1}\n Responsável: {serviceOrderDetail.responsavel}\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 { DateAdapter } from '@/data/protocols'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\ntype OsInfoProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsInfo: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const validaDataZerada = (stringValue: string): string => {\n return stringValue === '01/01/0001 12:00:00' ? '' : stringValue\n }\n\n return (\n <>\n Informações da OS\n \n \n \n Origem\n \n Empresa: {serviceOrderDetail.empresa}\n Orçamento: {serviceOrderDetail.orcamento}\n Vendedor: {serviceOrderDetail.nomeVendedor}\n \n Solicitante: {serviceOrderDetail.solicitante}\n \n \n \n \n Planejamento\n \n OS com data agendada? {serviceOrderDetail.agendada ? 'SIM' : 'NÃO'}\n {serviceOrderDetail.agendada &&\n <>\n Data agendada: {dateAdapter.format(serviceOrderDetail.dataAgenda, 'DD/MM/yyyy hh:mm:ss')}\n Conclusão: {dateAdapter.format(serviceOrderDetail.previsao, 'DD/MM/yyyy hh:mm:ss')}\n \n }\n \n Data para entrega: {dateAdapter.format(serviceOrderDetail.previsao, 'DD/MM/yyyy')}\n \n \n\n \n \n Abertura\n \n Data da abertura: {dateAdapter.format(serviceOrderDetail.abertura, 'DD/MM/yyyy hh:mm:ss')}\n Causa da OS: {serviceOrderDetail.causaOS}\n Defeito apontado: {serviceOrderDetail.defeito}\n \n Aberta por: {serviceOrderDetail.usuarioAbertura}\n \n \n \n \n Execução\n \n Técnico: {serviceOrderDetail.nomeTecnico}\n Gerente técnico: {serviceOrderDetail.nomeGetec}\n Veículo: {serviceOrderDetail.veiculoOS}\n \n\n \n \n Fechamento\n \n Data de fechamento: {validaDataZerada(dateAdapter.format(serviceOrderDetail.dataFechamento, 'DD/MM/yyyy hh:mm:ss'))}\n Solução: {serviceOrderDetail.solucaoOS}\n \n Fechada por: {serviceOrderDetail.usuarioFechamento}\n \n \n \n \n Faturamento\n \n \n Nota de locação: {serviceOrderDetail.notaLocacao}\n Data de emissão: {validaDataZerada(dateAdapter.format(serviceOrderDetail.dataEmissao, 'DD/MM/yyyy hh:mm:ss'))}\n \n \n \n \n \n \n Observações de Abertura\n \n {serviceOrderDetail.executar}\n \n \n \n Observações Internas\n \n {serviceOrderDetail.observacaoInterna}\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, DataTable, Text } 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 Código\n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n Motivo\n Entregues\n \n\n {serviceOrderDetail.listaProdutos.map((produto, index) => (\n \n {produto.codProduto}\n {produto.descricao}\n {produto.quantidade}\n {formatCurrency(produto.unitario)}\n {formatCurrency(produto.unitario * produto.quantidade)}\n {produto.cobraCliente ? 'SIM' : 'NÃO'}\n {produto.motivo}\n {produto.entregue}\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","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsServices: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoServicos = serviceOrderDetail.listaOsServicos?.reduce(\n (acc, servico) => acc + servico.total,\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaOsServicos?.length &&\n <>\n Serviços da OS\n \n \n Código\n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n \n\n {serviceOrderDetail.listaOsServicos.map((servico, index) => (\n \n {servico.codServico}\n {servico.descricao}\n {servico.quantidade}\n {formatCurrency(servico.unitario)}\n {formatCurrency(servico.total)}\n {servico.cobraCliente ? 'SIM' : 'NÃO'}\n \n ))}\n \n \n Valor Bruto de Serviços: {formatCurrency(totalBrutoServicos)}\n Desconto Aplicado na OS: {formatCurrency(serviceOrderDetail.pDescontoServico)}% - {formatCurrency(serviceOrderDetail.descontoServ)}\n Total Líquido de Serviços: {formatCurrency(serviceOrderDetail.totalServicos)}\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 \n \n Valores Gerais\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 Valor do CREA: {formatCurrency(serviceOrderDetail.valorCrea)}\n \n Valor da OS: {formatCurrency(serviceOrderDetail.totalProdutos + serviceOrderDetail.totalServicos)}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } 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 tempoPercorrido = (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 calcularDuracaoTotal = (): string => {\n let totalHours = 0\n let totalMinutes = 0\n let totalSeconds = 0\n\n serviceOrderDetail.listaAtendimentos.forEach((atendimento) => {\n const [hours, minutes, seconds] = tempoPercorrido(\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 Técnico\n Data\n Início\n Final\n Responsável\n \n\n {serviceOrderDetail.listaAtendimentos.map((atendimento, index) => (\n <>\n \n {atendimento.codTecnico} - {atendimento.tecnico}\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 {atendimento.observacoes}\n \n }\n \n ))}\n \n \n Total de Horas: {calcularDuracaoTotal()}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsRemovals: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoProdutos = serviceOrderDetail.listaProdutosRetirar?.reduce(\n (acc, produto) => acc + produto.total,\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaProdutosRetirar?.length &&\n <>\n Produtos a Retirar do Cliente\n \n \n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n Motivo\n \n\n {serviceOrderDetail.listaProdutosRetirar.map((retirar, index) => (\n \n {retirar.descricao}\n {retirar.quantidade}\n {retirar.unitario}\n {retirar.total}\n {retirar.cobraCliente ? 'SIM' : 'NÃO'}\n {retirar.motivo}\n \n ))}\n \n \n Total de Produtos a Retirar: {formatCurrency(totalBrutoProdutos)}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsWarehouseProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsWarehouse: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetail.listaNFOS?.length &&\n <>\n Eventos do Almoxarifado\n \n \n Data\n Ocorrência\n Estoque\n Nota Fiscal\n Código\n Produto\n Quantidade\n Usuário\n \n\n {serviceOrderDetail.listaNFOS.map((almoxarifado, index) => (\n \n {dateAdapter.format(almoxarifado.dataMovimento, 'DD/MM/yyyy')}\n {almoxarifado.ocorrencia}\n {almoxarifado.estoque}\n {almoxarifado.nota}\n {almoxarifado.codigo}\n {almoxarifado.produto}\n {almoxarifado.quantidade}\n {almoxarifado.usuario}\n \n ))}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsProblemsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsProblems: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetail.listaProblemas?.length &&\n <>\n Problema Relatados na Ordem de Serviço\n \n \n Relato\n Resolução\n Origem\n Problema Relacionado\n \n\n {serviceOrderDetail.listaProblemas.map((problema, index) => (\n <>\n \n {dateAdapter.format(problema.dataInicial, 'DD/MM/yyyy hh:mm')}\n {dateAdapter.format(problema.dataFinal, 'DD/MM/yyyy hh:mm')}\n {problema.origem}\n {problema.strProblema}\n \n {problema.pendencia &&\n \n {problema.pendencia}\n \n }\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 serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {(serviceOrderDetail.encodeAssinatura || serviceOrderDetail.encodeAssinaturaTecnico) &&\n <>\n Assinaturas\n \n \n \n Assinatura Técnico\n \n \n \n \n \n Assinatura Cliente\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 } from '@react-navigation/native'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Loading, Box } from '@/presentation/components'\nimport { useErrorHandler } from '@/presentation/hooks'\nimport { serviceOrderDetailState, PageHeader, ClientInfo, OsInfo, OsProducts, OsServices, OsTotalizer, OsTreatments, OsRemovals, OsWarehouse, OsSignatures, OsProblems } from '@/presentation/pages/ServiceOrderDetail/components'\n\ntype ServiceOrderDetailProps = {\n getServiceOrderDetail: GetServiceOrderDetail\n dateAdapter: DateAdapter\n}\n\nexport const ServiceOrderDetail: React.FC = ({\n getServiceOrderDetail,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const [serviceOrderDetail, setServiceOrderDetail] = useRecoilState(serviceOrderDetailState)\n\n useFocusEffect(\n useCallback(() => {\n setServiceOrderDetail(currentState => ({ ...currentState, isLoading: true }))\n\n const paramsGetOrders = {\n planilha: 289345\n }\n\n getServiceOrderDetail\n .getDetail(paramsGetOrders)\n .then(serviceOrders => {\n setServiceOrderDetail(currentState => ({ ...currentState, ...serviceOrders }))\n })\n .catch(handleError)\n .finally(() => setServiceOrderDetail(currentState => ({ ...currentState, isLoading: false })))\n }, [])\n )\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n marginVertical: 0,\n marginHorizontal: 'auto',\n flex: 1,\n padding: 16,\n width: '100%'\n },\n scroll: {\n flex: 1,\n paddingTop: 12\n }\n })\n\n return (\n \n \n {serviceOrderDetail.isLoading\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 { 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 Rastreamento\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, Stack, 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, useFormat, 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 { formatCurrency } = useFormat()\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 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 {console.log(dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY'))}\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 \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","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Text, ActivityIndicator } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype LoadinProps = {\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 color={themeClient.menuColor}\n />\n \n setOpenUserMenu(true)}\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 EmptyListProps = {\n text?: string\n}\n\nexport const EmptyList: 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 />\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 { 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 { useAuth, 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 { isAdmin } = useAuth()\n const { setThemeClient } = useThemeClient()\n const { startConfig } = useProspectSettings()\n const setSocialMedia = useSetRecoilState(socialMediaState)\n const setPhoneModal = useSetRecoilState(phoneModalNumberState)\n\n useEffect(() => {\n if (!isAdmin()) {\n getTheme\n .get({ codigoUnidade: 0 })\n .then(setThemeClient)\n .catch(console.error)\n }\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: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap'\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n buttons: {\n maxWidth: 250,\n marginBottom: 10,\n padding: 3\n }\n})\n","import React from 'react'\nimport { IconButton } from 'react-native-paper'\nimport { TextInputProps } from '@react-native-material/core'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { useMediaQueries, 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 isOpen: boolean\n}\n\nexport const Modal: React.FC = ({\n title,\n isOpen,\n items,\n onSelect,\n onClose\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\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 { TextInput as Input, TextInputProps } from '@react-native-material/core'\nimport React from 'react'\nimport { styles } from './styles'\nimport { useTheme } from '@/presentation/hooks'\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 { Menu } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { Unidade } from '@/domain/models'\nimport { Box, Button } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenMenuUnitsState } from './atom'\n\ntype UnitsSelectorProps = {\n disabled: boolean\n currentUnit: number\n setCurrent: (currentUnit: number) => void\n units: Unidade[]\n}\n\nexport const UnitsSelector: React.FC = ({\n disabled,\n setCurrent,\n units,\n currentUnit\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useRecoilState(isOpenMenuUnitsState)\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(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n loading={disabled}\n loadingIndicatorPosition='overlay'\n title={currentUnit.toString().padStart(4, '0')}\n />\n }\n >\n {units?.map((config) => (\n handleSelectUnit(config.codigoUnidade)}\n title={`${config.codigoUnidade.toString().padStart(4, '0')} - ${config.nomeUnidade}`}\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 { UpdatePasswordParams } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenUpdatePasswordState = atom({\n key: 'isOpenUpdatePasswordState',\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 isLoading: false,\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 } 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, 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 [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 setState(currentState => ({ ...currentState, isLoading: 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 setState(currentState => ({ ...currentState, isLoading: 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 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":""}