{"version":3,"sources":["src/data/protocols/http/http-client.ts","src/domain/models/index.ts","src/domain/usecases/index.ts","src/data/protocols/index.ts","src/data/protocols/date/index.ts","src/data/protocols/criptography/index.ts","src/domain/models/client-model.ts","src/domain/models/card-model.ts","src/domain/models/service-order-detail-model.ts","src/domain/models/service-order-model.ts","src/domain/models/ticket-model.ts","src/domain/models/track-models.ts","src/domain/usecases/login/index.ts","src/domain/usecases/financial/index.ts","src/domain/usecases/financial/generate-inside-bank-slip.ts","src/domain/usecases/financial/get-tickets.ts","src/domain/usecases/financial/open-statement-of-debts.ts","src/domain/usecases/settings/index.ts","src/domain/usecases/accept-digital/index.ts","src/domain/usecases/accept-digital/get-digital-accepts.ts","src/domain/usecases/sac/index.ts","src/domain/usecases/nfs/index.ts","src/domain/usecases/nfs/get-nfs.ts","src/domain/usecases/nfs/open-danfe.ts","src/domain/usecases/nfs/open-nfse.ts","src/domain/usecases/nfs/open-lease-receipt.ts","src/domain/usecases/notifications/index.ts","src/domain/usecases/notifications/save-notification-token.ts","src/infra/criptography/environment-decoder-adapter/environment-decoder-adapter.ts","src/infra/criptography/environment-encoder-adapter/environment-encoder-adapter.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/register3.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/universal-cookie-adapter.ts","src/infra/cache/local-storage-adapter/local-storage-adapter.ts","src/main/factories/cache/universal-cookie-adapter-factory.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/not-found-error.ts","src/data/usecases/login/remote-authentication/remote-authentication.ts","src/data/usecases/login/remote-authentication-admin/remote-authentication-admin.ts","src/data/usecases/login/remote-get-user-by-document/remote-get-user-by-document.ts","src/data/usecases/login/remote-forgot-password/remote-forgot-password.ts","src/data/usecases/login/remote-portal-logout/remote-portal-logout.ts","src/data/usecases/login/remote-metrics-login/remote-metrics-login.ts","src/data/usecases/login/remove-metrics-logoff/remote-metrics-logoff.ts","src/data/usecases/login/remote-get-client-by-code/remote-get-client-by-code.ts","src/data/usecases/login/remote-get-client-contract/remote-get-client-contract.ts","src/data/usecases/login/remote-update-password/remote-update-password.ts","src/data/usecases/login/remote-update-default-password/remote-update-default-password.ts","src/data/usecases/login/remote-validate-password-recovery/remote-validate-password-recovery.ts","src/data/usecases/credit-card/get-credit-card/remote-get-credit-card.ts","src/data/usecases/credit-card/save-credit-card/remote-save-credit-card.ts","src/data/usecases/credit-card/pay-with-credit-card/remote-pay-with-credit-card.ts","src/data/usecases/financial/get-tickets/remote-get-tickets.ts","src/data/usecases/financial/get-ticket-pix/remote-get-ticket-pix.ts","src/data/usecases/financial/generate-bank-slip/remote-generate-bank-slip.ts","src/data/usecases/financial/generate-inside-bank-slip/remote-generate-inside-bank-slip.ts","src/data/usecases/financial/open-bank-slip/remote-open-bank-slip.ts","src/data/usecases/financial/open-statement-of-debts/remote-open-statement-of-debts.ts","src/data/usecases/settings/get-theme/remote-get-theme.ts","src/data/usecases/settings/get-unit-config/remote-get-unit-config.ts","src/data/usecases/settings/get-units/remote-get-units.ts","src/data/usecases/settings/get-prospect-configs/remote-get-prospect-configs.ts","src/data/usecases/settings/save-theme/remote-save-theme.ts","src/data/usecases/settings/save-unit-config/remote-save-unit-config.ts","src/data/usecases/settings/prospect-registration/remote-prospect-registration.ts","src/data/usecases/settings/test-email/remote-test-email.ts","src/data/usecases/settings/upload-file/remote-upload-file.ts","src/data/usecases/settings/save-prospect-config/remote-save-prospect-configs.ts","src/data/usecases/settings/get-events-settings/remote-get-events-settings.ts","src/data/usecases/settings/show-events/remote-show-events.ts","src/data/usecases/settings/get-sigma-desk-connections/remote-get-sigma-desk-connections.ts","src/data/usecases/settings/get-versions/remote-get-versions.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/data/usecases/notifications/get-client-notifications/remote-get-client-notifications.ts","src/data/usecases/notifications/delete-notification/remote-delete-notification.ts","src/data/usecases/notifications/save-client-notification-token/remote-save-client-notification-token.ts","src/data/usecases/notifications/change-token-notification-status/remote-change-token-notification-status.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/get-client-by-code-factory.ts","src/infra/adapters/jwt-adapter/jwt-adapter.ts","src/infra/adapters/moment-adapter/moment-date-adapter.ts","src/main/adapters/moment-date-adapter-factory.ts","src/main/adapters/environment-decoder-adapter.ts","src/main/adapters/environment-encoder-adapter.ts","src/main/factories/usecases/login/get-user-by-document-factory.ts","src/main/factories/usecases/login/portal-logout-factory.ts","src/main/factories/usecases/login/metrics-login-factory.ts","src/main/factories/usecases/login/forgot-password-factory.ts","src/main/factories/usecases/login/get-redes-sociais.ts","src/main/factories/usecases/login/update-password-factory.ts","src/main/factories/usecases/login/update-default-password-factory.ts","src/main/factories/usecases/login/validate-password-recovery-factory.ts","src/main/factories/usecases/nota-fiscal/get-nota-fiscal-factory.ts","src/main/factories/usecases/nota-fiscal/open-danfe-factory.ts","src/main/factories/usecases/nota-fiscal/open-nfse-factory.ts","src/main/factories/usecases/nota-fiscal/open-lease-receipt-factory.ts","src/main/factories/usecases/redes-sociais/save-redes-socias-factory.ts","src/main/factories/usecases/service-orders/add-new-os-factory.ts","src/data/builders/travel-alert-os-builder/travel-alert-os-builder.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/settings/get-versions-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/main/factories/usecases/notifications/delete-notification-factory.ts","src/main/factories/usecases/notifications/get-client-notifications-factory.ts","src/main/factories/usecases/notifications/save-notification-token-factory.ts","src/main/factories/usecases/notifications/change-token-notifications-status-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/pages/Settings/components/ModalSettingsDetails/atom.ts","src/presentation/pages/Settings/components/ModalSettingsDetails/styles.ts","src/presentation/pages/Settings/components/ModalSettingsDetails/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/main/config/firebaseConfig.js","src/presentation/hooks/use-permissions.ts","src/presentation/components/Atoms/authentication-atom.ts","src/presentation/components/Atoms/current-unit-atom.ts","src/presentation/components/Atoms/units-atom.ts","src/presentation/components/Atoms/cookie-atom.ts","src/presentation/components/Atoms/date-atom.ts","src/presentation/components/Atoms/local-storage-atom.ts","src/presentation/components/Atoms/encoder-atom.ts","src/presentation/components/Atoms/jwt-atom.ts","src/main/adapters/jwt-adapter-factory.ts","src/presentation/components/Atoms/snack-bar-atom.ts","src/presentation/components/Atoms/prospect-configs-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/components/atom.ts","src/presentation/pages/RedesSociais/index.tsx","src/main/factories/pages/admin/redes-sociais-factory.tsx","src/presentation/pages/Settings/styles.ts","src/presentation/pages/Settings/index.tsx","src/main/factories/pages/admin/settings-factory.tsx","src/presentation/styles/globals.ts","src/presentation/pages/Theme/styles.ts","src/presentation/pages/Theme/index.tsx","src/main/factories/pages/admin/theme-factory.tsx","src/presentation/pages/ProspectSettings/styles.ts","src/presentation/pages/ProspectSettings/index.tsx","src/main/factories/pages/admin/prospect-settings-factory.tsx","src/presentation/pages/EventsSettings/styles.ts","src/presentation/pages/EventsSettings/index.tsx","src/main/factories/pages/admin/events-settings-factory.tsx","src/presentation/pages/Financial/components/atom.ts","src/presentation/pages/Cartao/components/atom.ts","src/presentation/pages/Cartao/components/AddNewCreditCard/index.tsx","src/presentation/hooks/use-credit-card.ts","src/presentation/pages/Cartao/components/CreditCard/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/styles.ts","src/presentation/pages/Cartao/components/ModalEditConfirmation/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/atom.ts","src/presentation/pages/Financial/components/AddOtherCreditCard/index.tsx","src/presentation/pages/Financial/components/AddOtherCreditCard/atom.ts","src/presentation/pages/Financial/components/CardTicket/styles.ts","src/presentation/pages/Financial/components/CardTicket/index.tsx","src/presentation/pages/Financial/components/CreditCardItem/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/styles.ts","src/presentation/pages/Financial/components/PayCreditCards/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/atom.ts","src/presentation/pages/Financial/components/FiltersChipPanel/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/styles.ts","src/presentation/pages/Financial/components/ModalTicketPix/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/atom.ts","src/presentation/pages/Financial/components/SideFilters/index.tsx","src/presentation/pages/Financial/components/SideFilters/atom.ts","src/presentation/pages/Financial/components/SelectStatusTicketFilter/index.tsx","src/presentation/pages/Financial/components/SelectStatusTicketFilter/atom.ts","src/presentation/pages/Financial/components/TicketActions/index.tsx","src/presentation/pages/Financial/components/TicketView/styles.ts","src/presentation/pages/Financial/components/TicketView/index.tsx","src/presentation/pages/Financial/components/TicketView/atom.ts","src/presentation/pages/Financial/styles.ts","src/presentation/pages/Financial/index.tsx","src/main/factories/pages/financial-factory.tsx","src/presentation/components/LogoTheme/index.tsx","src/presentation/pages/Login/components/ModalUserSelect/atom.ts","src/presentation/pages/Login/components/atoms.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/styles.ts","src/presentation/pages/Login/index.tsx","src/main/factories/pages/login-factory.tsx","src/presentation/pages/ServiceOrders/components/atom.ts","src/presentation/pages/ServiceOrders/components/CardOs/styles.ts","src/presentation/pages/ServiceOrders/components/CardOs/index.tsx","src/presentation/pages/ServiceOrders/components/FiltersChipPanel/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/atom.ts","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/index.tsx","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/atom.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/styles.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/index.tsx","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/atom.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/styles.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/index.tsx","src/presentation/pages/ServiceOrders/components/ModelOsView/atom.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/styles.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/index.tsx","src/presentation/pages/ServiceOrders/styles.ts","src/presentation/pages/ServiceOrders/index.tsx","src/main/factories/pages/service-orders-factory.tsx","src/presentation/pages/Home/components/atom.ts","src/presentation/pages/Home/components/ItemMenu/index.tsx","src/presentation/pages/Home/components/Menu/styles.ts","src/presentation/pages/Home/components/Menu/index.tsx","src/presentation/pages/Home/index.tsx","src/main/factories/pages/home-factory.tsx","src/presentation/pages/Cartao/styles.ts","src/presentation/pages/Cartao/index.tsx","src/main/factories/pages/card-factory.tsx","src/presentation/pages/AceiteDigital/components/atom.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/styles.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/index.tsx","src/presentation/pages/AceiteDigital/components/FiltersChipPanel/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/atom.ts","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/index.tsx","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/atom.ts","src/presentation/pages/AceiteDigital/styles.ts","src/presentation/pages/AceiteDigital/index.tsx","src/main/factories/pages/accept-digital-factory.tsx","src/presentation/pages/NotaFiscal/components/atom.ts","src/presentation/pages/NotaFiscal/components/CardNfse/styles.ts","src/presentation/pages/NotaFiscal/components/CardNfse/index.tsx","src/presentation/pages/NotaFiscal/components/FiltersChipPanel/index.tsx","src/presentation/pages/NotaFiscal/styles.ts","src/presentation/pages/NotaFiscal/components/LeaseReceipt/index.tsx","src/presentation/pages/NotaFiscal/components/NFProduct/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/atom.ts","src/presentation/pages/NotaFiscal/index.tsx","src/presentation/pages/NotaFiscal/components/NFService/index.tsx","src/main/factories/pages/nf-factory.tsx","src/presentation/pages/Sac/components/atom.ts","src/presentation/pages/Sac/components/CardSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/atom.ts","src/presentation/pages/Sac/styles.ts","src/presentation/pages/Sac/index.tsx","src/main/factories/pages/sac-factory.tsx","src/presentation/pages/Events/components/atom.ts","src/presentation/pages/Events/components/SideFilters/index.tsx","src/presentation/pages/Events/components/SideFilters/atom.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/styles.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/index.tsx","src/presentation/pages/Events/components/SelectRemotyEventCompany/index.tsx","src/presentation/pages/Events/components/SelectTypeSigmaEvent/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/index.tsx","src/presentation/pages/Events/components/FilterChipPanel/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/atom.ts","src/presentation/pages/Events/components/SectorsList/index.tsx","src/presentation/pages/Events/components/SectorsList/atom.ts","src/presentation/pages/Events/components/CardMonitoringEvent/styles.ts","src/presentation/pages/Events/components/CardMonitoringEvent/index.tsx","src/presentation/pages/Events/components/CardSector/styles.ts","src/presentation/pages/Events/components/CardSector/index.tsx","src/presentation/pages/Events/components/ContactEventList/index.tsx","src/presentation/pages/Events/components/ContactEventList/atom.ts","src/presentation/pages/Events/components/CardContact/styles.ts","src/presentation/pages/Events/components/CardContact/index.tsx","src/presentation/pages/Events/components/UserEventList/index.tsx","src/presentation/pages/Events/components/UserEventList/atom.ts","src/presentation/pages/Events/components/CardUsers/styles.ts","src/presentation/pages/Events/components/CardUsers/index.tsx","src/presentation/pages/Events/components/SelectSowillKey/atom.ts","src/presentation/pages/Events/components/SelectSowillKey/index.tsx","src/presentation/pages/Events/styles.ts","src/presentation/pages/Events/index.tsx","src/main/factories/pages/events-factory.tsx","src/main/factories/usecases/events/print-events-factory.ts","src/main/factories/usecases/events/get-remoty-events-factory.ts","src/main/factories/usecases/events/get-remoty-sectors-factory.ts","src/main/factories/usecases/events/get-remoty-users-factory.ts","src/main/factories/usecases/events/get-remoty-contacts-factory.ts","src/main/factories/usecases/events/get-moni-events-factory.ts","src/main/factories/usecases/events/get-moni-users-factory.ts","src/main/factories/usecases/events/get-moni-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-events-factory.ts","src/main/factories/usecases/events/get-sowill-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-users-factory.ts","src/main/factories/usecases/events/get-sowill-keys-factory.ts","src/main/factories/usecases/events/get-sowill-identifier-factory.ts","src/main/factories/usecases/events/get-sigma-events-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-users-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-keys-factory.ts","src/main/factories/usecases/events/get-sigma-desk-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-desk-contacts-factory.ts","src/presentation/pages/TravelAlert/components/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddResponsible/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddVehicle/atom.ts","src/presentation/pages/TravelAlert/components/ResponsiblesPanel/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/atom.ts","src/presentation/pages/TravelAlert/components/VehiclePanel/index.tsx","src/presentation/pages/TravelAlert/styles.ts","src/presentation/pages/TravelAlert/index.tsx","src/main/factories/pages/travel-alert-factory.tsx","src/presentation/pages/RecoveryPassword/styles.ts","src/presentation/pages/RecoveryPassword/index.tsx","src/main/factories/pages/recovery-password-factory.tsx","src/presentation/pages/ServiceOrderDetail/components/atom.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/styles.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/index.tsx","src/presentation/pages/ServiceOrderDetail/styles.ts","src/presentation/pages/ServiceOrderDetail/components/ClientInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsProducts/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTotalizer/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTreatments/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsSignatures/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsImageView/atom.ts","src/presentation/pages/ServiceOrderDetail/components/OsImages/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsChecklist/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsImageView/index.tsx","src/presentation/pages/ServiceOrderDetail/components/PrintButton/index.tsx","src/presentation/pages/ServiceOrderDetail/components/PrintButton/atom.ts","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/pages/Prospect/styles.ts","src/presentation/pages/Prospect/components/atoms.ts","src/presentation/pages/Prospect/components/ActionsForm/index.tsx","src/presentation/pages/Prospect/components/RegisterForm/styles.ts","src/presentation/pages/Prospect/components/RegisterForm/index.tsx","src/presentation/pages/Prospect/index.tsx","src/main/factories/pages/prospect-factory.tsx","src/presentation/components/DrawerNavigator/index.tsx","src/presentation/components/Loading/index.tsx","src/presentation/components/Logout/styles.ts","src/presentation/components/Logout/index.tsx","src/presentation/components/Logout/atom.ts","src/presentation/components/InputField/index.tsx","src/presentation/components/InstallButton/index.tsx","src/presentation/components/InstallationSuggestion/styles.ts","src/presentation/components/InstallationSuggestion/index.tsx","src/presentation/components/InstallationSuggestion/atom.ts","src/presentation/components/Header/index.tsx","src/presentation/components/ConfigSlider/index.tsx","src/presentation/components/NoResultMessage/styles.ts","src/presentation/components/NoResultMessage/index.tsx","src/presentation/components/PageHeader/index.tsx","src/presentation/components/PixIcon/index.tsx","src/presentation/components/Footer/index.tsx","src/presentation/components/LogoTheme/atom.ts","src/presentation/components/MenuActions/index.tsx","src/presentation/components/MessageBlock/index.tsx","src/presentation/components/ModalBase/index.tsx","src/presentation/components/NotificationButton/index.tsx","src/presentation/components/Router/index.tsx","src/presentation/hooks/use-notifications.ts","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/SecurityPassword/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/ServerUrlSelector/atom.ts","src/presentation/components/ServerUrlSelector/index.tsx","src/presentation/components/UserMenu/atom.ts","src/presentation/components/RecoveryPassword/atom.ts","src/presentation/components/RecoveryPassword/styles.ts","src/presentation/components/RecoveryPassword/index.tsx","src/presentation/components/UpdatePassword/atom.ts","src/presentation/components/UpdatePassword/styles.ts","src/presentation/components/UpdatePassword/index.tsx","src/presentation/components/TabBottomNavigator/index.tsx","src/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/presentation/components/NotificationsModal/styles.ts","src/presentation/components/NotificationsModal/index.tsx","src/presentation/components/NotificationsModal/atom.ts","src/presentation/components/NotificationCard/styles.ts","src/presentation/components/NotificationCard/index.tsx","src/main/config/clarity.js","src/presentation/components/UnitsSelector/atom.ts","src/presentation/components/UnitsSelector/index.tsx","src/main/App.tsx","src/main/AppEntry.js"],"names":["HttpStatusCode","ClientMonitoringType","ClientModality","cardMaskByFlag","mastercard","visa","amex","diners","discover","unknown","ServiceOrderDetailStatus","ServiceOrderStatus","ServiceOrderPriority","ServiceOrderModality","BANK","FuelType","GenerateInsideBankSlip","RN","TOTAL_DAYS_BEFORE_NEW_UPDATE","GetTickets","DEFAULT_DAYS_LATER","DEFAULT_DAYS_AGO","DEFAULT_YEARS_AGO","DEFAULT_STATUS","LIMIT_SHOW_ITEMS","SHOW_ONLY_PENDING","OpenStatementOfDebts","FOLDER_DEFAULT_PDF","GetDigitalAccepts","GetNFs","DEFAULT_MONTHS_AGO","OpenDanfe","FOLDER_DEFAULT_PDF_DANFE","OpenNfse","FOLDER_DEFAULT_NFSE","OpenLeaseReceipt","FOLDER_DEFAULT_LEASE_RECEIPT","SaveNotificationToken","LOCAL_STORAGE_TOKEN","EnvironmentDecoderAdapter","_createClass","_classCallCheck","key","value","Buffer","from","toString","replace","inputObject","resultObject","Object","prototype","hasOwnProperty","call","this","decode","EnvironmentEncoderAdapter","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","resolve","palette","white","black","primaryLighten","primaryLight","primary","primaryDark","primaryDarken","secondaryLight","secondary","secondaryDark","secondaryContainer","error","success","successContainer","divider","background","backgroundCard","backgroundSearch","backgroundMenu","backgroundInput","backgroundPortal","backgroundNotification","greyLighten","greyLight","grey","greyDark","greyDarken","greyDarken2","textsLighten","textsLight","texts","textsDark","info","infoContainer","pink","theme","name","colors","_objectSpread","DefaultTheme","UniversalCookieAdapter","universalCookies","set","path","remove","get","LocalStorageAdapter","localStorage","setItem","JSON","stringify","removeItem","getItem","parse","undefined","Cookies","makeLocalStorageAdapter","InvalidCredentialsError","_Error","message","_this","_callSuper","_inherits","_wrapNativeSuper","InvalidRelationCompany","UnexpectedError","UnexpectedResultFormatError","AccessDeniedError","ForbiddenError","ResultWithoutRecordsError","NotFoundError","RemoteAuthentication","url","httpClient","_auth","_asyncToGenerator","params","authParams","method","body","grant_type","portal","headers","_yield$this$httpClien","request","statusCode","ok","badRequest","error_description","unauthorized","_x","apply","arguments","RemoteAuthenticationAdmin","identificadorAplicacao","mapToModel","forbidden","authenticationAdmin","data","access_token","token","RemoteGetUser","httpCliente","_getUsersByDocument","length","RemoteForgotPassword","httpPostClient","_requestAccess","_yield$this$httpPostC","RemotePortalLogout","_logout","RemoteMetricsLogin","_register","acao","plataforma","RemoteMetricsLogoff","RemoteGetClientByCode","_getByCode","treatedParams","codigoCliente","tokenDispositivo","RemoteGetClientContract","_getContract","RemoteUpdatePassword","_update","RemoteUpdateDefaultPassword","_changePassword","RemoteValidatePasswordRecovery","_validate","RemoteGetCreditCard","_getByClient","expiracao","split","substring","noContent","RemoteSaveCreditCard","_save","dataParams","_objectWithoutProperties","_excluded","formatExpiration","expiration","currentYear","Date","getFullYear","RemotePayWithCreditCard","_pay","duplicata","cartao","notAcceptable","RemoteGetTickets","_get","RemoteGetTicketPix","_getPix","codigoBanco","BoletoInside","pixUrl","RemoteGenerateBankSlip","_generate","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","Assas","window","open","RemoteOpenStatementOfDebts","_openPaymentReport","RemoteGetTheme","codigoUnidade","notFound","RemoteGetUnitConfig","_getAll","RemoteGetUnits","RemoteGetProspectConfigs","RemoteSaveTheme","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","RemoteGetVersions","RemoteGetNFs","httpGetClient","_yield$this$httpGetCl","RemoteOpenDanfe","_open","cliCodigo","RemoteOpenNfse","linkAutenticidade","utilizarDevExpress","producao","RemoteOpenLeaseReceipt","RemoteAddNewOs","_add","avisoViagem","Aberta","tipo","ManutencaoCorretiva","prioridade","Normal","RemoteAddTravelAlertOs","travelAlertBuilder","observacoes","setDates","dataSaida","horaSaida","dataRetorno","horaRetorno","requester","solicitante","mailRequester","phone1Requester","telefone1","phone2Requester","telefone2","addResponsibles","chavesSomenteComCentral","responsaveisChave","addAuthorized","possuiAutorizados","autorizados","addVehicles","possuiVeiculosCuidadosCentral","veiculos","addRecommendations","recomendacoes","build","cliente","empresa","modalidade","RemoteGetServiceOrders","RemoteGetOsAttendance","_getAttendences","RemoteGetServiceOrderDetail","_getDetail","RemoteGetRedesSociais","_getRedesSociais","RemoteSaveRedesSociais","RemoteGetAcceptDigital","RemoteOpenUrlDocAccept","_view","statusAceite","urlAceite","hash","indexOf","enviarEmail","certificadoHtml","Blob","type","html","URL","createObjectURL","RemoteOpenDocumentAccept","codigoAceite","RemotePrintEvents","_print","tipoConexao","oldUrlIndex","toLowerCase","newUrl","RemoteGetRemotyEvents","_getEvents","eventsRaw","events","remotyEvent","_remotyEvent$event","_remotyEvent$event2","_remotyEvent$event3","evento","event","codEvent","nmEvent","dataEvento","dtEventFormatted","aux","idEvent","nmPanelUser","RemoteGetRemotySectors","_getSectors","sectors","sector","nome","nmZone","idEquipamento","idEquipmentZone","codZone","ativo","flActive","RemoteGetRemotyUserEvents","_getUsers","maptoGeneric","users","user","nmUserPassword","RemoteGetRemotyContacts","_getContacts","contacts","contact","idUsuario","idDevice","nomeUsuario","nmDeviceUser","fone1","nmDevicePhone","fone2","nmDevicePhone2","idDispositivo","deviceGroup","idDeviceGroup","nomeDispositivo","nmDeviceGroup","RemoteGetMoniEvents","codigoOcorrencia","ocorrencia","format","dataHora","RemoteGetMoniSectors","sectorsRaw","equipamento","codigoZona","RemoteGeMoniUsersEvents","usersRaw","codCliente","dddFone","dddCelular","celular","RemoteGetSowillEvents","IdCliente","idCliente","codInternoChave","dateTimeInicioManutencao","sowillEvent","description","account","RemoteGetSowillSectors","_getZones","CodInternoChave","numeroSerie","observacao","auxiliar","RemoteGetSowillUsers","_user$nroUserSistema","usuarioAlarme","nroUserSistema","RemoteGetSowillKeys","_getKeys","RemoteGetSowillIdentifier","_getIdentifier","RemoteGetSigmaEvents","sigmaEvent","RemoteGetSigmaCloudSectors","descProduto","idEvento","cdCliente","cdEvento","obs","RemoteGetSigmaCloudUsers","usuarios","RemoteGetSigmaCloudKeys","RemoteGetSigmaDeskSectors","_getSector","RemoteGetSigmaDeskContacts","idFuncao","descFuncao","RemoteGetSacList","RemoteCreateSac","_create","sacParams","isPortal","RemoteGetClientNotifications","RemoteDeleteNotification","_delete2","RemoteSaveNotificationToken","RemoteChangeTokenNotificationsStatus","_change","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","FIREBASE_API_KEY","FIREBASE_AUTH_DOMAIN","FIREBASE_PROJECT_ID","FIREBASE_STORAGE_BUCKET","FIREBASE_MESSAGING_SENDER_ID","FIREBASE_APP_ID","FIREBASE_VAPID_KEY","makeGetAcceptDigital","env","makeOpenUrlDocAcceptFactory","makeOpenDocumentAcceptFactory","makeGetCreditCard","makePayWithCreditCard","makeSaveCreditCard","makeAuthentication","makeGetClientByCode","JwtAdapter","jwt_decode","moment","locale","MomentDateAdapter","diff","startOf","date","toDate","dateFormat","days","initDate","subtract","years","add","month","isBefore","makeDateAdapterFactory","makeEnvironmentDecoderAdapterFactory","makeEncoderAdapterFactory","makeGetUser","encoder","makePortalLogout","makeMetricsLogin","makeForgotPassword","makeGetRedesSociais","makeUpdatePassword","makeUpdateDefaultPassword","makeValidatePasswordRecovery","makeGetRemoteGetNFs","makeOpenDanfe","makeOpenNfse","makeOpenLeaseReceipt","makeSaveRedesSociais","makeAddNewOs","TravelAlertBuilder","observation","line","horaMinutoSaida","horaMinutoRetorno","_horaMinutoSaida$spli","_horaMinutoSaida$spli2","_slicedToArray","minutoSaida","_horaMinutoRetorno$sp","_horaMinutoRetorno$sp2","minutoRetorno","dateStart","setHours","parseInt","setMinutes","dateEnd","dataSaidaFormatada","dataRetornoFormatada","addLine","phone","responsible","endereco","chavesSomenteComCentralMonitoramento","responsibles","forEach","resp","addResponsible","_this2","vehicle","_this3","placa","possuiResponsaveis","responsaveis","authorized","vehicles","_this4","addVehicle","recommendations","makeAddTravelAlertOs","makeGetServiceOrders","makeGetOsAttendance","makeGetServiceOrderDetail","makeGetUnitConfig","makeGetTheme","makeGetUnits","makeGetProspectConfigs","makeProspectRegistration","makeTestEmail","makeSaveUnitConfig","makeSaveTheme","makeUploadFile","makeSaveProspectConfigs","makeGetEventsSettings","makeShowEvents","makeGetSigmaDeskConnectionsFactory","makeGetVersions","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","makeDeleteNotification","makeGetClientNotifications","makeSaveNotificationToken","makeChangeTokenNotificationsStatus","EMMITERS_AUTHORIZED","ROLES_AUTHORIZED","useAuth","notify","useNotify","_useRecoilState","useRecoilState","authenticationState","_useRecoilState2","autentication","setAuthentication","useRecoilValue","localStorageState","jwtAdapter","jwtAdapterAtom","dateAdapterAtom","isAdmin","useCallback","accessToken","tokenDecode","login","currentState","registerLogin","logout","client","getCurrentClient","sub","getClient","accessTokenDecode","codeClient","nomeCliente","endsWith","isNaN","isSignedIn","_autentication$access","_autentication$access2","_window","_client$codCliente","_client$unidade","_window2","_window2$location","expireDate","currentClient","auth","iss","roles","every","role","setUTCSeconds","exp","isExpired","hadAccessToken","version","catch","console","clarity","unidade","location","host","isPasswordSecure","password","hasUpperCase","test","hasLowerCase","hasNumber","hasSpecialChar","setSecurePassword","setClient","getAddress","adressCode","_client$enderecoAlter","enderecoAlternativo","find","address","getSaveUser","savedUser","username","saveUsername","saveUser","isLoadingState","atom","default","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","cardContainerButton","width","cardContainerMobile","cardContent","FinancialSettings","getThemeClient","useThemeClient","setFinancialConfig","_useState","useState","initialFinancialConfigs","setIsOpenSettingsDetailsState","isOpenSettingsDetailsState","themeClient","handleChange","param","Box","ScrollView","_Fragment","permitePagamentoCartao","CardSwitch","text","boletoInside","validaCartaoCredito","handleSwitch","atualizaAutomaticoCartao","visualizaFaturaCartaoVencida","bolEntradaConfirmada","bolExibeOriginal","bolAtualizaBoletos","PaymentAvailableToUpdate","bolOcultaFormasPgto","HidePaymentMethods","exibeAlteracaoCartao","TextInput","mode","activeUnderlineColor","mainColor","label","underlineColorAndroid","underlineColor","emailAlteracaoCartao","onChangeText","maxLength","pagamentoCartaoAtivo","Text","paddingRight","fontWeight","MaterialCommunityIcons","size","Loading","initialGeneralConfigsState","hasErrorGeneralConfigState","GeneralSettings","testEmail","setGeneralConfig","_useRecoilState3","_useRecoilState4","initialGeneralConfigs","setInitialGeneralConfigs","_useRecoilState5","_useRecoilState6","hasError","setError","useEffect","handleChangeDate","field","dateFormatted","hasChanged","EmailSendingTester","copia","enviaEmailViagem","emailViagem","readonly","emailSac","exibeChavesAvisoViagem","visualizaDetalhesContrato","limiteDiasVisualizaCritica","dias","bloqueiaInativos","limiteDataRetroativa","DatePicker","onChange","_useState2","mailSended","setMailSended","_useState3","_useState4","responseMail","setResponseMail","isLoadingTestMailState","isLoadingTestMail","setLoadingTestMail","_useRecoilState7","_useRecoilState8","Stack","direction","justify","items","trailing","props","MaterialIcons","testEmailParams","then","isValid","finally","loading","disabled","pt","InvoicesSettings","setInvoiceConfig","initialInvoiceConfigs","handleChangeConfig","nfsOcultarInfos","nfsOcultarLink","ServiceOrderSettings","setServiceOrderConfig","initialServiceOrderConfigs","utilizaEmpresaPadrao","empresaPadraoOS","exibirOsFechadas","osSemTecnico","limitaOs","abrirOsSemFaturamento","osEmpresaPadrao","exibeMensagemAbrirOs","mensagemAberturaOs","enviarAvisoAberturaOs","emailOs","generalContainer","alignItems","selectorContainer","selectorContainerMobile","selectBox","selectBoxMobile","titleBox","textAlign","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","item","hide","formasPagamento","formasPagamentoOculta","formasPagamentoOcultas","MenuAccessPermissions","setMenuAccessPermissionsConfig","initialMenuAccessPermissionsConfigs","handleChangeSetting","aceiteDigital","contrato","documentosUteis","boleto","notaFiscal","monitoramento","os","rastreamento","sac","telefonesUteis","viagem","gap","buttonArea","ModalOnDiscardChanges","isOpen","setOpen","discardChanges","useSettings","handleClose","ModalBase","visible","onClose","shadow","show","isOpenSaveOrDiscardConfigState","isLoadingSaveOrDiscardConfigState","ModalOnSaveOrDiscard","saveUnitConfig","currentConfig","isLoading","setLoading","setInitialConfigs","save","hasUpdated","uniCodigo","padStart","isLoadingSaveConfigState","flexWrap","ModalOnSaveChanges","_useSettings","startConfig","isValidMail","handleSaveChanges","errors","push","generalConfigValidation","height","section","paddingTop","paddingVertical","titleLarge","titleMedium","bodyText","lineHeight","emphasized","ModalSettingsDetails","_currentConfig$formas","log","View","forma","initialConfigs","setGeneralConfigs","setInvoiceConfigs","setServiceOrderConfigs","setMenuAccessPermissionsConfigs","mail","assuntoEmailConfirmacaoPgto","mensagemSMSConfirmacaoPgto","mensagemEmailConfirmacaoPgto","uniUnidade","emailAlteracaoCadastro","chaveResidencia","exibeAlteracaoCadastro","conPorCodigo","servidorSmtp","autentica","senha","porta","ssl","leitura","enviaListaChave","exibeAvisoAberturaOs","avisoAberturaOs","Dimensions","openInPWA","matchMedia","matches","openInIOS","navigator","userAgent","appBarHeight","APP_BAR_HEIGTH","PADDING_STATUS_BAR_IOS","useFormat","formatCurrency","amount","Intl","NumberFormat","currency","formatDocument","document","numericValue","formatCEP","cep","removeNewLines","validateCPF","cpf","cpfNumeros","soma","i","resto","digito1","digito2","validateCNPJ","cnpj","cnpjNumeros","peso1","peso2","useThemePaper","useImage","getImage","image","_image$split$pop","defaultImage","pop","shift","imageFolder","fetch","logo","DEFAULT_PATH_IMAGES","base64toFile","b64Data","fileName","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","File","useErrorHandler","callback","errorThemeState","initialTheme","menuColor","loginColor","buttonSave","initialThemeState","themeState","colorSelect","selectedLogoState","selectedImageLogoState","selectedBackgroundState","selectedImageBackgroundState","modalOnDiscardChangesThemeState","serverList","unitsState","reduce","acc","unit","enderecoExterno","dadosUnidade","unidades","values","modalOnSaveChangeThemeState","firstRecording","setOpenDiscardChanges","setOpenSaveChanges","input","outlineWidth","inputColor","ColorPicker","setThemeClient","inputStyle","editable","target","LoginBackgroundSelector","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","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","handleError","upload","saveThemeParams","bgLogin","themeResult","isOpenDiscardChanges","setTheme","setInitialTheme","selectedBackground","_document","themeColorClient","querySelector","setAttribute","snackBarProviderState","messages","setMessages","showMessage","options","_options$variant","_options$duration","newMessage","duration","some","currentMessage","currentMessages","setTimeout","dismiss","messageId","warning","dimiss","initialProspectConfigsState","saveProspectConfigs","useProspectSettings","prospectConfigs","GeneralState","areaInterests","handlerError","newProspectConfigs","areaInteresse","content","ModalAddConfigUnit","_areaInterest$interes2","_prospectConfigs$list","isOpenAddConfigUnitState","addConfigUnitState","areaInterest","setAreaInterest","isDuplicatedOptionSate","isDuplicated","setIsDuplicated","units","isOpenSelectUnitState","isOpenSelectUnit","setOpenSelectUnit","_useRecoilState9","isOpenSelectInterestState","_useRecoilState10","isOpenSelectInterest","setOpenSelectInterest","areaInterestsList","setProspectInterestAreaList","reset","existUnit","interest","interesse","descreve","handleInputChange","MessageBlock","Select","Trigger","onOpen","minWidth","textContentType","_areaInterest$interes","isValidEmail","validValues","newInterestArea","currentInterestAreaList","Modal","onSelect","unitCode","_","listaInteresse","_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","environmentDecoder","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","treatedFirebaseConfig","objectDecode","messaging","isSupported","firebaseApp","initializeApp","getMessaging","err","PermissionsStatus","usePermissions","requestNotification","returnObject","isGranted","Notification","requestPermission","Granted","errorMessage","currentUnitState","isLoadingProspectConfigsState","prospectConfigsState","moduloLiberado","prospectInterestAreaState","position","bottom","right","BackgroundTheme","backgroundEmpresa","setBackgroundEmpresa","backgroundDefault","ImageBackground","opacity","alignSelf","Chip","containerStyle","textStyle","_ref$variant","containerStyles","filled","outlined","textStyles","ChipPaper","testID","ChipFilter","subtitle","paddingHorizontal","cardBase","CardBase","shadowOpacity","Content","CardList","containerMobile","textLoading","isEmpty","NoResultMessage","textEmpty","flexGrow","_ref$showIfValueFalsy","showIfValueFalsy","themeCliente","showChildren","cardContentHeader","Switch","onValueChange","cardChildren","marginVertical","marginHorizontal","paddingLeft","initYear","finalYear","INITIAL_YEAR","useMemo","FINAL_YEAR","DatePickerInput","inputMode","startYear","endYear","withDateFormatInLabel","inputEnabled","CustomDrawer","socialMidias","socialMediaState","DrawerContentScrollView","contentContainerStyle","DrawerItemList","pv","SocialMidias","NavigationRoute","handleScreenPath","screen","screensClientNavigator","_screensClientNavigat","Home","Prospect","Financial","Invoices","SAC","DigitalAccepts","ServiceOrders","CreditCard","TravelAlert","PhoneUtils","DocumentsUtils","Monitoring","Track","OsDetail","Contract","StatementOfDebts","ChangePassword","RecoveryPassword","screensAdminNavigator","Login","Theme","Configs","SocialMedia","ProspectSettings","footer","textTransform","isLoadingSocialMidiaState","RedesSociais","saveRedesSociais","getRedesSociais","getUnits","state","setState","currentUnit","setCurrentUnit","isLoadingSocialMidia","setIsLoadingSocialMidia","setUnits","getAll","at","useFocusEffect","getRedesSociaisParams","codUnidade","prevState","SafeAreaView","UnitsSelector","leading","Icon","as","whatsapp","facebook","linkedin","instagram","tiktok","telegram","youtube","Footer","saveParams","makeRedesSociaisFactory","Tab","createMaterialTopTabNavigator","Settings","getUnitConfigs","getConfigParams","Navigator","screenOptions","tabBarItemStyle","tabBarLabelStyle","tabBarIndicatorStyle","tabBarStyle","Screen","tabBarLabel","component","makeSettingsFactory","layoutStyles","pageContent","scroll","paddingBottom","footerContainer","toolbar","_units$find","_useThemeClient","logoEmpresa","setLogoEmpresa","hasExternalServerUrl","handleGetTheme","getTheme","getVersions","versions","needUpdate","currentAppVersionNumber","portalVersion","replaceAll","lastAppVersionNumber","versaoAtualPortal","currentIntegraVersionNumber","versaoLocalIntegra","lastIntegraVersionNumber","versaoAtualIntegra","fonte","wrap","m","makeThemeFactory","getProspectConfigs","_useProspectSettings","setAddOptionOpen","PageHeader","icon","Checkbox","makeProspectSettingsFactory","headerContainer","_events$listaExibidos","_events$listaTipos","getSigmaDeskConnections","getEventsSettings","setConnections","isOpenConnectionMenu","setOpenConnectionMenu","_useEventsSettings","setEvents","resetEvents","handleBounceEvent","codEvento","eventosTodos","selectedEvent","getSelectedConnection","selectedConnection","handleGetEvents","InputField","fontStyle","eventoExibido","codigoExibicao","Divider","eventoComum","updatedConnections","handleSelectConnection","makeEventsSettingsFactory","isLoadingFinancialState","isLoadingOpenBankSlip","ticketsState","isEditableState","creditCardState","ccv","mask","numero","AddNewCreditCard","_creditCard$expiracao","isEditable","_useCreditCard","getCreditCardType","creditCardNumber","maskCreditCardNumber","maskCreditCardValidity","cleanedText","formattedText","isValidExpiration","creditCard","setCreditCard","formArea","keyboardType","placeholder","helperText","card","minHeight","insideLogo","chipCard","mt","letterSpacing","shadowColor","shadowOffset","shadowRadius","ModalModalEditConfirmation","isOpenEditConfirmationState","setEditable","AddOtherCreditCard","isOpenAddOtherCreditCardState","otherCreditCardState","otherCreditCard","setOtherCreditCard","errorAddOtherCreditCardState","setOpenTicketView","isOpenTicketViewState","setCreditCards","creditCardsState","handleResetCard","vencimento","isValidDataCard","mv","errorContainer","borderLeftWidth","borderLeftColor","pr","backgroundPosition","backgroundSize","backgroundRepeat","statusIcon","textStatus","CardTicket","ticket","openBankSlip","_ref$current","current","setCurrentTicketPix","selectedTicketPixState","setOpenPix","isOpenTicketPixState","setTicketView","ticketViewState","handleCopyBarCode","Clipboard","setStringAsync","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$numero$padSta","_ticket$numero2","selectedTicketPix","isLoadingTicketPixState","pix","setPix","setTicket","isHttps","protocol","handleGetPix","codInternoDuplicata","getTicketPix","getPix","QRCodeSvg","logoSize","logoBackgroundColor","nativeID","selectTextOnFocus","getElementById","focus","SideFilters","getTickets","setFilters","invalidDateState","invalidDate","setInvalidDate","errorHandler","setTickets","returnInitialDateFilter","daysLater","defaultInitialdate","daysAgo","formattedDefaultInitialdate","limitDate","filterParsedDate","currentFilters","SideFilter","Drawer","onSubmit","paramsGetTicket","dataInicial","dataFinal","resetState","Snackbar","action","compact","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","tickets","setTicketsFilters","scrollViewRef","useRef","RN_TOTAL_ITEMS_SHOW","currentTicket","getMonth","orderTickets","prev","paraGetTickets","scrollToTop","scrollTo","y","animated","handleOnFilter","ref","refreshControl","RefreshControl","onRefresh","openFilters","ScrollToTopButton","targetRef","makeFinancialFactory","navigation","TabBottomNavigator","LogoTheme","_props$width","_props$height","_props$minHeight","logoEmpresaState","isSvg","objectFit","src","isOpenUserSelect","usersSelectState","isOpenForgotPasswordState","loginState","recoveryEmail","ModalForgotPassword","handleCloseModal","currentValues","documento","forgotPassword","requestAccess","ModalUserSelect","authentication","setUsersSelect","handleCancel","authToken","handleLogin","List","left","titleStyle","loginContent","form","checkboxArea","snackbar","_useAuth","State","setSelection","setModalUserSelect","setOpenUserSelect","setOpenForgotPassword","setOpenUpdatePassword","isOpenUpdatePasswordState","prospectInterestArea","socialMedia","handleChangeInput","handleCheckSecurityPassword","handleSubmit","dataAuth","loginWithDocument","loginWithCode","getUser","getUsersByDocument","clients","onSurfaceVariant","textColor","render","NativeTextInput","onKeyPress","secureTextEntry","uncheckedColor","navigate","makeLoginFactory","isLoadingServiceOrdersState","serviceOrdersState","serviceOrdersConfigsState","bloqueiaAberturaLimite","portalExibeMensagem","portalMensagem","headerStyles","textOrderStyles","CardOs","serviceOrder","setOsView","serviceOrderViewState","codEndereco","textTitleStyles","colorStatusStyle","A","B","F","ordem","CircleIcon","dataAbertura","dataFechamento","bairro","MarkerIcon","currentOs","handleAddNewOs","isOpenServiceOrdersFiltersState","serviceOrdersFiltersState","_getClient","codTecnico","Fechadas","getServiceOrders","serviceOrdersConfigs","setServiceOrdersConfig","setServiceOrders","monthAgo","paramsGetOrders","serviceOrders","listaOS","SelectStatusOsFilter","statusOSs","statusOSsState","ModalAddNewOs","_formatAddress","_client$enderecoAlter2","addNewOs","addNewOsState","addNewOS","setAddNewOs","isOpenAddNewOS","isLoadingAddNewOS","isOpenAddressNewOSState","isOpenAddressNewOS","setOpenAddressNewOS","resetAddNewOs","successNewOs","createSacParams","listNewServiceOrders","formatAddress","addressCode","inputContainerStyle","multiline","numberOfLines","addNewOsParams","itemsColor","_formatAddress2","ModalOsView","_serviceOrder$current2","_serviceOrder$current3","_serviceOrder$current4","_serviceOrder$current5","_serviceOrder$current6","_serviceOrder$current7","getOsAttendance","isLoadingOsViewState","_serviceOrder$current","getAttendences","codigoOs","attendances","OSIcon","identificacao","cidade","estado","OsAttendandes","attendancesContainer","titleAttendances","attendancesText","_serviceOrder$attenda","attendance","nomeTecnico","dataTermino","setOpenAddNewOs","FAB","makeServiceOrdersFactory","colorsPage","ItemMenu","page","_useMediaQueries","localNotifications","notificationsState","iconPage","route","iconContainer","iconContent","Badge","notification","itemUser","ITEMS_EXCLUDES","Menu","itemsMenu","accessibilityLabel","getClientByCode","metricsLogin","tokenCliente","getByCode","register","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","handleCloseMenu","colorType","Orçamento","Contrato","Aditivo","tipoAceite","typeChipContainer","statusChipContainer","emailEnvio","MenuActions","idAceite","onDismiss","anchor","openParams","leadingIcon","viewParams","view","dataEnvio","aceiteHashProcesso","Pressable","isOpenAcceptDigitalFiltersState","acceptDigitalFiltersState","dtInicial","dtFinal","Pendentes","Autorizados","Ambos","getAcceptDigital","setAccepts","paramsGetAcceptDigital","SelectStatusAcceptFilter","statusAccept","statusAcceptState","AcceptDigital","getDocAcceptDigital","accepts","makeAcceptDigitalFactory","isLoadingNfState","isLoadingOpenNfState","nfsConfigState","ocultaInfos","ocultaLink","nfsState","nfState","leaseReceiptState","bold","borderBottomWidth","borderBottomColor","iconButton","buttons","CardNfse","nfse","openNfse","nfsConfigs","currentIndex","isLoadingOpenNfse","setLoadingOpenNfse","handleOpenNfse","nf","openNfseParams","codEmpresa","numeroRPS","notaNumero","serieRps","notaSerie","notaNumeroNFSE","linkConsultaNotaPortal","ActivityIndicator","notaValor","notaData","isOpenNfsFiltersState","nfsFiltersState","cardArea","emptyNf","LeaseReceipt","openLeaseReceipt","leaseReceipts","_React$useState","React","_React$useState2","setCurrentIndex","setOpenFilters","closeMenu","handleOpenLeaseReceipt","recibo","openLeaseReceiptParams","codigoRecibo","nfNumeroNota","openMenu","toLocaleDateString","NFProduct","openDanfe","nfs","handleOpenDanfe","openDanfeParams","notaProcNFE","getNFs","nfsInvalidDateState","nfsInvalidDate","setNfsInvalidDate","setNFsConfigs","setNFs","setNFSs","setLeaseReceipts","initFilters","nfResult","arrRecibos","arrNF","arrNFS","NotaFiscal","getNFsParams","NFService","makeNFFactory","sacState","listaReclamacoes","listaTipoAtendimento","CardSac","_listaTipoAtendimento","_listaTipoAtendimento2","E","R","S","sacType","reclamante","codReclamacao","reclamacao","ModalNewSac","createSac","sacNewState","newSac","setNewSac","setSacs","isLoadingNewSacState","isOpenNewSacState","successNewSac","resetNewSac","tipoDescricao","typeDescription","dateParam","hora","dataAcaoImediata","dataAcaoCorretiva","btnContainer","Sac","_sacs$listaReclamacoe","_sacs$listaReclamacoe2","getSacList","sacs","setOpenNewSac","makeSacFactory","sigmaKeysState","sowillKeysState","sowillIdentifierState","monitoringDateFiltersState","monitoringFilterDate","setMonitoringFilterDate","setRemotyFilter","remotyFilterState","setSigmaFilter","sigmaFilterState","isOpenMonitoringFiltersState","setNoMonitoringError","monitoringListHasError","localFilterDate","setLocalFilterDate","isLoadingMonitoringEventState","handleResetState","remotyIdEquipamento","remotyNmEquip","sigmaTipo","sigmaTituloChip","SIGMA_CLOUD","SelectTypeSigmaEvent","selectInput","modalContainer","modalContent","optionItem","sigmaEventsFilterType","modalVisible","setModalVisible","stylesContainer","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","setHasError","sigmaFilterType","getEventsMonitoring","handleGetSigmaEvent","initialDefaultDate","finalDefaultDate","dataIni","filtro","getEvents","defaultDate","empresaMoni","dtInicio","dtFim","mr","innerWidth","ml","listaEventos","printParams","print","res","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","validatePasswordRecovery","updateDefaultPassword","RecoveryPasswordC","makeRecoveryPasswordFactory","isLoadingServiceOrderDetailState","serviceOrderDetailState","headerBox","serviceOrderDetail","isPrinting","isPrintingServiceOrderDetailState","alt","numOS","tipoOSDescricao","pageInfo","additionalText","additionalTextBox","borderTopWidth","borderTopColor","totalizerTextBox","imageContainer","ClientInfo","CardRow","CardDetails","fantasia","emailCliente","OsInfo","executar","obsFechamento","OsProducts","_serviceOrderDetail$l","_serviceOrderDetail$l2","totalBrutoProdutos","listaProdutos","produto","unitario","quantidade","exibeValoresProdutosServicos","codProduto","unidadeMedida","cobraCliente","motivo","entregue","pDesconto","descontoProd","totalProdutos","OsTotalizer","totalServicos","descontoServ","OsTreatments","listaAtendimentos","atendimento","tipoAtendimento","tecnico","hrInicio","hrFim","responsavel","totalHours","totalMinutes","totalSeconds","_handlePastTime$split","initialHour","finalHour","initialTime","durationInMilliseconds","getTime","Math","floor","seconds","handlePastTime","_handlePastTime$split2","handleTotalDuration","OsSignatures","_serviceOrderDetails$","serviceOrderDetails","setImageView","selectedOsImageViewState","assinaturasFechamento","sign","caminhoArquivo","nomeArquivo","OsImages","imagensGerais","boxShadow","OsChecklist","_serviceOrderDetails$2","setSelectedImageView","checklist","perguntas","titulo","pergunta","perguntaLabel","imagemBase64","codInternoPergunta","_image$caminhoArquivo","getImageAttachments","titleQuestion","descritiva","oSCheckListsRespostas","detalhes","resposta","OsImageView","imageView","PrintButton","setIsPrinting","handleFormatPrint","createElement","innerHTML","head","appendChild","addEventListener","handlePrint","ServiceOrderDetail","setIsLoading","setServiceOrderDetail","useRoute","tokenParam","getServiceOrderDetail","getDetail","makeServiceOrderDetailFactory","isLoadingTrackState","trackState","CardTrack","getTrackDetails","isLoadingTrackDetailsState","setDetails","trackDetailsState","setOpenDetail","isOpenTrackDetailsState","getDetails","currentDetails","handleDetails","TrackDetails","details","handleFuelName","Biocombustivel","Diesel","Eletrico","Etanol","GNV","Gasolina","Hibrido","getTrackList","tracks","setTracks","makeTrackFactory","isOpenContractDetailsState","btnAction","actionsContent","CompanyCard","cpfCnpj","enderecoGeral","ContractCard","numContrato","primeiroFaturamento","diaVencimento","ModalContractDetails","_client$servicosContr","btnLimparStyles","terminoContrato","valorMensal","ph","servicosContratadosPortal","servico","cliSerContDescricao","cliSerContQuantidade","cliSerContValor","dataCadastro","serCodigo","makeContractFactory","isOpenDebtsYearMenuState","debtsYearState","openStatementOfDebts","isOpenDebtsYearMenu","setOpenDebtsYearMenu","debtsYear","setDebtsYear","getSelectedDebtYear","selectedDebtYear","debt","possibleDebtsYears","debtYear","getPossibleDebtsYears","openPaymentReport","updatedDebtsYear","handleSelectDebtYear","makeStatementOfDebtsFactory","logoArea","isOpenInterestAreaState","selectedInterestAreaState","isLoadingProspectRegistrationState","isSendRegistrationState","prospectRegistrationState","codDEInteresse","emailUrl","fax","fone","numeroEndereco","complemento","ActionsForm","_useFormat","selectedInteresetArea","isSendRegistration","setSendRegistration","resetInteresetArea","isValidForm","documentValidation","errorValidation","prospectRegistration","uppercase","RegisterForm","setSelectedInterestArea","isOpenAreaIntereset","setOpenAreaInterest","interesetArea","handleChangeCEPInput","handleChangeInputCGC","formattedValue","isLoadingRegistration","isLoadingConfigs","makeProspectFactory","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","saveNotificationToken","getNotifications","notifications","RN_SHOW_MENU_OS","RN_SHOW_MENU_TICKETS","RN_SHOW_MENU_NF","RN_SHOW_MENU_ACEITE","RN_SHOW_MENU_CARTAO","RN_SHOW_MENU_SAC","RN_SHOW_MENU_MONITORING","RN_SHOW_MENU_TRAVEL","RN_SHOW_MENU_RASTREAMENTO","RN_SHOW_MENU_CONTRACTS","linking","prefixes","initialRouteName","screens","makeNotificationTitle","NavigationContainer","fallback","drawerActiveTintColor","drawerItemStyle","header","drawerContent","drawerLabel","drawerIcon","headerShown","Logout","portalLogout","isOpenLogoutState","codClient","InstallButton","setOpenModal","isOpenInstallationState","deferredPrompt","hasDeclineInstall","timestamp","isExpiredDecline","diferrenceMilissegundos","abs","handleInstall","_deferredPrompt","prompt","top","Entypo","InstallationSuggestion","setNotifications","setOpenUserMenu","isOpenUserMenuState","setOpenNotificationsMenu","isOpenNotificationsModalState","userAdministrator","contentTitleStyle","handleSearchNotifications","handleSaveNotificationToken","removeEventListener","onMessageListener","Promise","messagingInstance","onMessage","payload","Appbar","appBar","Action","toggleDrawer","isLeading","themeContainer","titleArea","zIndex","_ref$text","AntDesignIcon","_ref$height","xmlns","viewBox","d","_ref$status","colorContainerStatusStyle","isVisible","onSwipeComplete","onBackdropPress","swipeDirection","animationIn","animationOut","Router","firebaseNotifications","permissions","firebaseVapiKey","serviceWorkerRegistration","notificationPermission","scriptURL","serviceWorker","handleGetToken","messagingResolve","getToken","vapidKey","currentToken","_ref3","_x2","useFirebaseNotifications","setSocialMedia","setLoadingProspectConfigs","setPhoneModal","phoneModalNumberState","socialMedias","SnackBarProvider","UpdatePasswordC","updatePassword","setModalOpen","phoneModalState","setModalNumber","callNumber","phoneNumber","Platform","OS","Linking","canOpenURL","supported","openURL","twitter","animateView","toValue","animatedRef","delay","Animated","timing","useNativeDriver","SnackBar","fadeAnime","Value","initAnimations","sequence","start","hidden","closeButton","inputDatePicker","MARGIN_MODALS","contentStyles","titleStyles","TextInputProps","observer","IntersectionObserver","root","rootMargin","threshold","observe","unobserve","SecurityPassword","minLenght","Input","userTitle","itemMenu","UserMenu","setOpenLogout","handleOpenUpdatePassword","handleOnLogout","isLoadingRecoveryPasswordState","isOpenRecoveryPasswordState","recoverySettingsState","novaSenha","confirmacaoSenha","showPasswordState","showPassword","setShowPassword","setLogin","resetRecoverySettings","resetLogin","idRecuperacao","validate","clientCode","handleUpdatePassword","updatePasswordParams","changePassword","changed","isLoadingUpdatePasswordState","updateSettingsState","senhaAtual","_state$novaSenha","colorsVariant","light","containerColor","containerIconColor","TimePickerModal","use24HourClock","cancelLabel","modalIsOpen","treatedPhoneNumber","NotificationsModal","_autentication$client2","_autentication$client3","_autentication$client4","deleteNotification","changeNotificationStatus","setIsOpen","handleMarkAsRead","notificationKey","delete","_autentication$client","recebeNotificacoes","change","_currentState$client","NotificationCard","onMarkAsRead","c","l","a","r","t","_NavigationRoute$Fina","pageColor","screenName","isOpenMenuUnitsState","_currentUnit$codigo","loadingIndicatorPosition","registerTranslation","q","async","getElementsByTagName","parentNode","insertBefore","registerRootComponent","RecoilRoot","PaperProvider"],"mappings":"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","file":"static/js/app.be9e33ae.chunk.js","sourcesContent":["export type HttpRequest = {\n url: string\n method: HttpMethod\n body?: any\n headers?: any\n params?: any\n}\n\nexport interface HttpClient {\n request: (data: HttpRequest) => Promise>\n}\n\nexport type HttpMethod = 'post' | 'get' | 'put' | 'delete'\n\nexport enum HttpStatusCode {\n ok = 200,\n noContent = 204,\n badRequest = 400,\n unauthorized = 401,\n forbidden = 403,\n notFound = 404,\n notAcceptable = 406,\n serverError = 500\n}\n\nexport type HttpResponse = {\n statusCode: HttpStatusCode\n body: T\n}\n","export * from './account-model'\nexport * from './authentication-model'\nexport * from './accept-digital-model'\nexport * from './client-model'\nexport * from './client-configs-model'\nexport * from './card-model'\nexport * from './file-model'\nexport * from './os-attendance-model'\nexport * from './nfs-model'\nexport * from './redes-sociais-model'\nexport * from './sac-model'\nexport * from './service-order-detail-model'\nexport * from './settings-model'\nexport * from './service-order-model'\nexport * from './prospect-configs-model'\nexport * from './ticket-model'\nexport * from './theme-model'\nexport * from './user-model'\nexport * from './events-model'\nexport * from './events-remoty-model'\nexport * from './events-moni-model'\nexport * from './events-sowill-model'\nexport * from './events-sigma-model'\nexport * from './track-models'\nexport * from './notifications'\nexport * from './versions-model'\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'\nexport * from './notifications'\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'\nexport * from './date-is-before'\n","export * from './decoder'\nexport * from './object-decoder'\nexport * from './encoder'\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 recebeNotificacoes: boolean\n codTecnico: number\n osSemTecnico: boolean\n limiteDataRetroativa: string\n}\n\nexport type ContractedServices = {\n cliSerContCodigo: number\n cliSerContDescricao: string\n serCodigo: number\n cliSerContQuantidade: number\n cliSerContValor: number\n cliContNumeroContrato: string\n dataCadastro: string\n}\n\nexport type ClientContractModel = {\n primeiroFaturamento: string\n terminoContrato: string\n faturaLote: boolean\n visualizaDetalhesContrato: boolean\n valorMonitoramento: number\n modalidade: ClientModality\n diaVencimento: number\n numContrato: string\n servicosContratados: ContractedServices[]\n}\n\nexport enum ClientMonitoringType {\n SIGMA_DESK = 0,\n MONI = 1,\n SIGMA_CLOUD = 2,\n REMOTY = 3,\n SO_WILL = 5\n}\n\nexport type ClientAddress = {\n bairro: string\n cep: string\n cidade: string\n codInterno: number\n complemento: string\n endereco: string\n estado: string\n identificacao: 'Principal' | string\n numero: string\n padrao: boolean\n}\n\nexport enum ClientModality {\n Venda = 'V',\n Locacao = 'L',\n Rastreamento = 'R',\n}\n\nexport type CentralMonitoring = {\n idEquipment: number\n nmEquipment: string\n nmAccount: string\n flActive: boolean\n flMonitoring: boolean\n flMaintenance: boolean\n}\n","export type CreditCardModel = {\n ccv: string\n codCliente: number\n email: string\n expiracao: string\n mask: string\n nome: string\n numero: string\n type: CardFlagsTypes\n}\n\nexport type CardFlagsTypes = 'mastercard' | 'visa' | 'amex' | 'diners' | 'discover' | 'unknown'\n\nexport const cardMaskByFlag = {\n mastercard: '9999 9999 9999 9999',\n visa: '9999 9999 9999 9999',\n amex: '9999 999999 99999',\n diners: '9999 9999 9999 99',\n discover: '9999 9999 9999 9999',\n unknown: '9999 9999 9999 9999'\n}\n","export type ServiceOrderDetailModel = {\n planilha: number\n codInterno: number\n unidade: number\n numOS: number\n tipoOSDescricao: string\n status: ServiceOrderDetailStatus\n executar: string\n obsFechamento: string\n\n listaProdutos: ServiceOrderProductModel[]\n listaOsServicos: ServiceOrderServiceModel[]\n listaAtendimentos: ServiceOrderTreatmentModel[]\n\n totalProdutos: number\n descontoProd: number\n pDesconto: number\n totalServicos: number\n descontoServ: number\n pDescontoServico: number\n\n logoEmpresa: string\n exibeValoresProdutosServicos: boolean\n assinaturasFechamento: ServiceOrderImageModel[]\n imagensGerais: ServiceOrderImageModel[]\n checklist: Checklist\n} & ServiceOrderClientModel\n\ntype Checklist = {\n titulo: string\n perguntas: ChecklistPergunta[]\n}\n\nexport type ChecklistPergunta = {\n pergunta: string\n codInterno: number\n descritiva: boolean\n oSCheckListsRespostas: {\n resposta: boolean\n detalhes: string\n }\n}\n\nexport type ServiceOrderProductModel = {\n codInterno: number\n codProduto: number\n descricao: string\n quantidade: number\n unitario: number\n total: number\n cobraCliente: boolean\n motivo: string\n entregue: number\n unidadeMedida: string\n}\n\nexport type ServiceOrderServiceModel = {\n codInterno: number\n codServico: number\n descricao: string\n quantidade: number\n total: number\n unitario: number\n cobraCliente: boolean\n}\n\nexport type ServiceOrderTreatmentModel = {\n codTecnico: number\n tecnico: string\n data: string\n hrInicio: string\n hrFim: string\n hrInicioDeslocamento: string\n hrFimDeslocamento: string\n responsavel: string\n observacoes: string\n tipoAtendimento: string\n}\n\nexport enum ServiceOrderDetailStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport type ServiceOrderImageModel = {\n nomeArquivo: string\n dataModificacao: string\n caminhoArquivo: string\n}\n\nexport type ServiceOrderClientModel = {\n codCliente: number\n cliente: string\n fantasia: string\n cpf: string\n fone1: string\n endereco: string\n bairro: string\n cidade: string\n estado: string\n emailCliente: string\n}\n","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 pixUrl: string\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 Assas = 950,\n}\n","export type TrackModel = {\n codInterno: number\n id: string\n placa: string\n}\n\nexport type TrackResult = {\n CodInterno: number\n Id: string\n Placa: string\n}\n\nexport type TrackDetailsModel = {\n id: string\n cor: string\n ano: string\n placa: string\n modelo: string\n combustivel: FuelType\n}\n\nexport enum FuelType {\n Gasolina = 'G',\n Etanol = 'A',\n Biocombustivel = 'B',\n Diesel = 'D',\n GNV = 'N',\n Eletrico = 'E',\n Hibrido = 'H'\n}\n\nexport type TrackDetailsResult = {\n Id: string\n Cor: string\n Ano: string\n Placa: string\n Modelo: string\n Combustivel: string\n}\n","export * from './authentication'\nexport * from './authentication-admin'\nexport * from './get-client-by-code'\nexport * from './get-client-contract'\nexport * from './get-user-by-document'\nexport * from './metrics-login'\nexport * from './metrics-logoff'\nexport * from './portal-logout'\nexport * from './forgot-password'\nexport * from './update-password'\nexport * from './update-default-password'\nexport * from './validate-password-recovery'\n","export * from './generate-bank-slip'\nexport * from './generate-inside-bank-slip'\nexport * from './get-tickets'\nexport * from './get-ticket-pix'\nexport * from './open-bank-slip'\nexport * from './open-statement-of-debts'\n","export type GenerateInsideBankSlipParams = {\n codigoCliente: number\n nossoNumero: string\n registrado: boolean\n linkBoleto: string\n dtVencimento: string\n codBanco: number\n novaVersao: boolean\n original?: boolean\n}\n\nexport interface GenerateInsideBankSlip {\n generate: (params: GenerateInsideBankSlipParams) => Promise\n}\n\nexport namespace GenerateInsideBankSlip {\n export const RN = {\n TOTAL_DAYS_BEFORE_NEW_UPDATE: 21\n }\n}\n","import { TicketModel } from '@/domain/models'\n\nexport type GetTicketSituation = 'Pagas' | 'Em Aberto' | 'Todas'\n\nexport type GetTicketsParams = {\n codigoCliente: number\n situacao?: GetTicketSituation\n dataInicial?: string\n dataFinal?: string\n}\n\nexport interface GetTickets {\n get: (params: GetTicketsParams) => Promise\n}\n\nexport namespace GetTickets {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_YEARS_AGO: 5,\n DEFAULT_STATUS: 'Em Aberto' as GetTicketSituation,\n LIMIT_SHOW_ITEMS: 4,\n SHOW_ONLY_PENDING: 'false'\n }\n}\n","export type OpenStatementOfDebtsParams = {\n codCliente: number\n ano: number\n}\n\nexport interface OpenStatementOfDebts {\n openPaymentReport: (params: OpenStatementOfDebtsParams) => Promise\n}\n\nexport namespace OpenStatementOfDebts {\n export const RN = {\n FOLDER_DEFAULT_PDF: 'TempRelatorios'\n }\n}\n","export * from './get-settings'\nexport * from './get-theme'\nexport * from './get-unit-config'\nexport * from './get-units'\nexport * from './get-prospect-configs'\nexport * from './prospect-registration'\nexport * from './save-theme'\nexport * from './save-unit-config'\nexport * from './test-email'\nexport * from './upload-file'\nexport * from './get-prospect-configs'\nexport * from './save-prospect-configs'\nexport * from './get-events-settings'\nexport * from './show-events'\nexport * from './get-sigma-desk-connections'\nexport * from './get-versions'\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 interface GetDigitalAccepts {\n get: (params: GetDigitalAccepts.Params) => Promise\n}\n\nexport namespace GetDigitalAccepts {\n export type Params = {\n codCliente: number\n dtInicial: string\n dtFinal: string\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n }\n\n export type Result = AcceptDigitalModel[]\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","export * from './get-client-notifications'\nexport * from './delete-notification'\nexport * from './save-notification-token'\nexport * from './change-token-notifications-status'\n","export type SaveNotificationTokenParams = {\n codigoCliente: number\n tokenDispositivo: string\n}\n\nexport interface SaveNotificationToken {\n save: (params: SaveNotificationTokenParams) => Promise\n}\nexport namespace SaveNotificationToken {\n export const RN = {\n LOCAL_STORAGE_TOKEN: 'firebase_device_token'\n }\n}\n","import { Decoder, ObjectDecoder } from '@/data/protocols'\n\nexport class EnvironmentDecoderAdapter implements ObjectDecoder, Decoder {\n decode (value: string): string {\n const byteValue = Buffer.from(value, 'base64')\n const stringValue = byteValue.toString('ascii')\n\n const result = stringValue.replace(/\\\\n/g, '\\n')\n\n return result\n }\n\n objectDecode (inputObject: { [key: string]: string }): { [key: string]: string } {\n const resultObject: { [key: string]: string } = {}\n\n for (const key in inputObject) {\n if (Object.prototype.hasOwnProperty.call(inputObject, key)) {\n resultObject[key] = this.decode(inputObject[key])\n }\n }\n\n return resultObject\n }\n}\n","import { Encoder } from '@/data/protocols'\n\nexport class EnvironmentEncoderAdapter implements Encoder {\n encode (value: string): string {\n const asciiValue = Buffer.from(value, 'ascii')\n const base64Value = asciiValue.toString('base64')\n\n return base64Value\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\": 417,\n\t\"./af.js\": 417,\n\t\"./ar\": 418,\n\t\"./ar-dz\": 419,\n\t\"./ar-dz.js\": 419,\n\t\"./ar-kw\": 420,\n\t\"./ar-kw.js\": 420,\n\t\"./ar-ly\": 421,\n\t\"./ar-ly.js\": 421,\n\t\"./ar-ma\": 422,\n\t\"./ar-ma.js\": 422,\n\t\"./ar-ps\": 423,\n\t\"./ar-ps.js\": 423,\n\t\"./ar-sa\": 424,\n\t\"./ar-sa.js\": 424,\n\t\"./ar-tn\": 425,\n\t\"./ar-tn.js\": 425,\n\t\"./ar.js\": 418,\n\t\"./az\": 426,\n\t\"./az.js\": 426,\n\t\"./be\": 427,\n\t\"./be.js\": 427,\n\t\"./bg\": 428,\n\t\"./bg.js\": 428,\n\t\"./bm\": 429,\n\t\"./bm.js\": 429,\n\t\"./bn\": 430,\n\t\"./bn-bd\": 431,\n\t\"./bn-bd.js\": 431,\n\t\"./bn.js\": 430,\n\t\"./bo\": 432,\n\t\"./bo.js\": 432,\n\t\"./br\": 433,\n\t\"./br.js\": 433,\n\t\"./bs\": 434,\n\t\"./bs.js\": 434,\n\t\"./ca\": 435,\n\t\"./ca.js\": 435,\n\t\"./cs\": 436,\n\t\"./cs.js\": 436,\n\t\"./cv\": 437,\n\t\"./cv.js\": 437,\n\t\"./cy\": 438,\n\t\"./cy.js\": 438,\n\t\"./da\": 439,\n\t\"./da.js\": 439,\n\t\"./de\": 440,\n\t\"./de-at\": 441,\n\t\"./de-at.js\": 441,\n\t\"./de-ch\": 442,\n\t\"./de-ch.js\": 442,\n\t\"./de.js\": 440,\n\t\"./dv\": 443,\n\t\"./dv.js\": 443,\n\t\"./el\": 444,\n\t\"./el.js\": 444,\n\t\"./en-au\": 445,\n\t\"./en-au.js\": 445,\n\t\"./en-ca\": 446,\n\t\"./en-ca.js\": 446,\n\t\"./en-gb\": 447,\n\t\"./en-gb.js\": 447,\n\t\"./en-ie\": 448,\n\t\"./en-ie.js\": 448,\n\t\"./en-il\": 449,\n\t\"./en-il.js\": 449,\n\t\"./en-in\": 450,\n\t\"./en-in.js\": 450,\n\t\"./en-nz\": 451,\n\t\"./en-nz.js\": 451,\n\t\"./en-sg\": 452,\n\t\"./en-sg.js\": 452,\n\t\"./eo\": 453,\n\t\"./eo.js\": 453,\n\t\"./es\": 454,\n\t\"./es-do\": 455,\n\t\"./es-do.js\": 455,\n\t\"./es-mx\": 456,\n\t\"./es-mx.js\": 456,\n\t\"./es-us\": 457,\n\t\"./es-us.js\": 457,\n\t\"./es.js\": 454,\n\t\"./et\": 458,\n\t\"./et.js\": 458,\n\t\"./eu\": 459,\n\t\"./eu.js\": 459,\n\t\"./fa\": 460,\n\t\"./fa.js\": 460,\n\t\"./fi\": 461,\n\t\"./fi.js\": 461,\n\t\"./fil\": 462,\n\t\"./fil.js\": 462,\n\t\"./fo\": 463,\n\t\"./fo.js\": 463,\n\t\"./fr\": 464,\n\t\"./fr-ca\": 465,\n\t\"./fr-ca.js\": 465,\n\t\"./fr-ch\": 466,\n\t\"./fr-ch.js\": 466,\n\t\"./fr.js\": 464,\n\t\"./fy\": 467,\n\t\"./fy.js\": 467,\n\t\"./ga\": 468,\n\t\"./ga.js\": 468,\n\t\"./gd\": 469,\n\t\"./gd.js\": 469,\n\t\"./gl\": 470,\n\t\"./gl.js\": 470,\n\t\"./gom-deva\": 471,\n\t\"./gom-deva.js\": 471,\n\t\"./gom-latn\": 472,\n\t\"./gom-latn.js\": 472,\n\t\"./gu\": 473,\n\t\"./gu.js\": 473,\n\t\"./he\": 474,\n\t\"./he.js\": 474,\n\t\"./hi\": 475,\n\t\"./hi.js\": 475,\n\t\"./hr\": 476,\n\t\"./hr.js\": 476,\n\t\"./hu\": 477,\n\t\"./hu.js\": 477,\n\t\"./hy-am\": 478,\n\t\"./hy-am.js\": 478,\n\t\"./id\": 479,\n\t\"./id.js\": 479,\n\t\"./is\": 480,\n\t\"./is.js\": 480,\n\t\"./it\": 481,\n\t\"./it-ch\": 482,\n\t\"./it-ch.js\": 482,\n\t\"./it.js\": 481,\n\t\"./ja\": 483,\n\t\"./ja.js\": 483,\n\t\"./jv\": 484,\n\t\"./jv.js\": 484,\n\t\"./ka\": 485,\n\t\"./ka.js\": 485,\n\t\"./kk\": 486,\n\t\"./kk.js\": 486,\n\t\"./km\": 487,\n\t\"./km.js\": 487,\n\t\"./kn\": 488,\n\t\"./kn.js\": 488,\n\t\"./ko\": 489,\n\t\"./ko.js\": 489,\n\t\"./ku\": 490,\n\t\"./ku-kmr\": 491,\n\t\"./ku-kmr.js\": 491,\n\t\"./ku.js\": 490,\n\t\"./ky\": 492,\n\t\"./ky.js\": 492,\n\t\"./lb\": 493,\n\t\"./lb.js\": 493,\n\t\"./lo\": 494,\n\t\"./lo.js\": 494,\n\t\"./lt\": 495,\n\t\"./lt.js\": 495,\n\t\"./lv\": 496,\n\t\"./lv.js\": 496,\n\t\"./me\": 497,\n\t\"./me.js\": 497,\n\t\"./mi\": 498,\n\t\"./mi.js\": 498,\n\t\"./mk\": 499,\n\t\"./mk.js\": 499,\n\t\"./ml\": 500,\n\t\"./ml.js\": 500,\n\t\"./mn\": 501,\n\t\"./mn.js\": 501,\n\t\"./mr\": 502,\n\t\"./mr.js\": 502,\n\t\"./ms\": 503,\n\t\"./ms-my\": 504,\n\t\"./ms-my.js\": 504,\n\t\"./ms.js\": 503,\n\t\"./mt\": 505,\n\t\"./mt.js\": 505,\n\t\"./my\": 506,\n\t\"./my.js\": 506,\n\t\"./nb\": 507,\n\t\"./nb.js\": 507,\n\t\"./ne\": 508,\n\t\"./ne.js\": 508,\n\t\"./nl\": 509,\n\t\"./nl-be\": 510,\n\t\"./nl-be.js\": 510,\n\t\"./nl.js\": 509,\n\t\"./nn\": 511,\n\t\"./nn.js\": 511,\n\t\"./oc-lnc\": 512,\n\t\"./oc-lnc.js\": 512,\n\t\"./pa-in\": 513,\n\t\"./pa-in.js\": 513,\n\t\"./pl\": 514,\n\t\"./pl.js\": 514,\n\t\"./pt\": 515,\n\t\"./pt-br\": 516,\n\t\"./pt-br.js\": 516,\n\t\"./pt.js\": 515,\n\t\"./ro\": 517,\n\t\"./ro.js\": 517,\n\t\"./ru\": 518,\n\t\"./ru.js\": 518,\n\t\"./sd\": 519,\n\t\"./sd.js\": 519,\n\t\"./se\": 520,\n\t\"./se.js\": 520,\n\t\"./si\": 521,\n\t\"./si.js\": 521,\n\t\"./sk\": 522,\n\t\"./sk.js\": 522,\n\t\"./sl\": 523,\n\t\"./sl.js\": 523,\n\t\"./sq\": 524,\n\t\"./sq.js\": 524,\n\t\"./sr\": 525,\n\t\"./sr-cyrl\": 526,\n\t\"./sr-cyrl.js\": 526,\n\t\"./sr.js\": 525,\n\t\"./ss\": 527,\n\t\"./ss.js\": 527,\n\t\"./sv\": 528,\n\t\"./sv.js\": 528,\n\t\"./sw\": 529,\n\t\"./sw.js\": 529,\n\t\"./ta\": 530,\n\t\"./ta.js\": 530,\n\t\"./te\": 531,\n\t\"./te.js\": 531,\n\t\"./tet\": 532,\n\t\"./tet.js\": 532,\n\t\"./tg\": 533,\n\t\"./tg.js\": 533,\n\t\"./th\": 534,\n\t\"./th.js\": 534,\n\t\"./tk\": 535,\n\t\"./tk.js\": 535,\n\t\"./tl-ph\": 536,\n\t\"./tl-ph.js\": 536,\n\t\"./tlh\": 537,\n\t\"./tlh.js\": 537,\n\t\"./tr\": 538,\n\t\"./tr.js\": 538,\n\t\"./tzl\": 539,\n\t\"./tzl.js\": 539,\n\t\"./tzm\": 540,\n\t\"./tzm-latn\": 541,\n\t\"./tzm-latn.js\": 541,\n\t\"./tzm.js\": 540,\n\t\"./ug-cn\": 542,\n\t\"./ug-cn.js\": 542,\n\t\"./uk\": 543,\n\t\"./uk.js\": 543,\n\t\"./ur\": 544,\n\t\"./ur.js\": 544,\n\t\"./uz\": 545,\n\t\"./uz-latn\": 546,\n\t\"./uz-latn.js\": 546,\n\t\"./uz.js\": 545,\n\t\"./vi\": 547,\n\t\"./vi.js\": 547,\n\t\"./x-pseudo\": 548,\n\t\"./x-pseudo.js\": 548,\n\t\"./yo\": 549,\n\t\"./yo.js\": 549,\n\t\"./zh-cn\": 550,\n\t\"./zh-cn.js\": 550,\n\t\"./zh-hk\": 551,\n\t\"./zh-hk.js\": 551,\n\t\"./zh-mo\": 552,\n\t\"./zh-mo.js\": 552,\n\t\"./zh-tw\": 553,\n\t\"./zh-tw.js\": 553\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 = 755;","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/register3.573063ad.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 backgroundNotification: 'rgba(33, 33, 33, 0.04)'\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\nexport class UniversalCookieAdapter implements SetCookie, GetCookie {\n constructor (private readonly universalCookies: Cookies) { }\n set (key: string, value: any): void {\n if (value) {\n this.universalCookies.set(key, value, { path: '/' })\n } else {\n this.universalCookies.remove(key, { path: '/' })\n }\n }\n\n get (key: string): any {\n return this.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) : undefined\n }\n}\n","import { UniversalCookieAdapter } from '@/infra/cache'\nimport Cookies from 'universal-cookie'\n\nconst universalCookies = new Cookies()\n\nexport const makeUniversalCookieAdapter = (): UniversalCookieAdapter => new UniversalCookieAdapter(universalCookies)\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 || 'Algo de errado aconteceu. Tente novamente mais tarde.')\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 NotFoundError extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'NotFoundError'\n }\n}\n","import { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { 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: Authentication.Params): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/token`,\n method: 'post',\n body: {\n ...params,\n grant_type: 'password',\n portal: true\n },\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 authParams: HttpRequest = {\n url: `${this.url}/api/v1/autenticacao/autenticar`,\n method: 'post',\n body: {\n ...params,\n identificadorAplicacao: this.identificadorAplicacao\n },\n headers: {\n 'content-type': 'multipart/form-data'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToModel(body)\n case HttpStatusCode.forbidden: throw new ForbiddenError(body?.message)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.message)\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (authenticationAdmin: AuthenticationAdminResult): AuthenticationModel {\n return {\n ...authenticationAdmin.data,\n access_token: authenticationAdmin.data.token\n }\n }\n}\n","import { GetUserByDocument, GetUserByDocumentParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, InvalidCredentialsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { UserModel } from '@/domain/models'\n\nexport class RemoteGetUser implements GetUserByDocument {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getUsersByDocument (params: GetUserByDocumentParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/acessofacilitado`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n if (!body.length) {\n throw new InvalidCredentialsError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ForgotPassword } 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: ForgotPassword.Params): Promise {\n const { body, statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/recuperar-senha`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { PortalLogout, PortalLogoutParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemotePortalLogout implements PortalLogout {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async logout (params: PortalLogoutParams): Promise {\n const { statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/RealizaLogoutPortal`,\n params\n })\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { MetricsLogin, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogin implements MetricsLogin {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGIN',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { MetricsLogoff, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogoff implements MetricsLogoff {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGOFF',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { GetClientByCode } 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: GetClientByCode.Params): Promise {\n const treatedParams = {\n codigoCliente: params.codigoCliente,\n tokenDispositivo: params.tokenDispositivo\n }\n\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/buscar-cliente`,\n body: treatedParams\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 { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols'\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 { statusCode, body } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/alterar-senha`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as boolean\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { UpdateDefaultPassword, UpdateDefaultPasswordParams } from '@/domain/usecases'\n\nexport class RemoteUpdateDefaultPassword implements UpdateDefaultPassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async changePassword (params: UpdateDefaultPasswordParams): Promise {\n const { statusCode, body } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/alterar-senha-recuperacao`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as boolean\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ValidatePasswordRecoveryResult, ValidatePasswordRecovery, ValidatePasswordRecoveryParams } from '@/domain/usecases'\n\nexport class RemoteValidatePasswordRecovery implements ValidatePasswordRecovery {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async validate (params: ValidatePasswordRecoveryParams): Promise {\n const { body, statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/LoginPortalService`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return (body as ValidatePasswordRecoveryResult).codigoCliente\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\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 { BANK } from '@/domain/models'\nimport { GetTicketPix } 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: GetTicketPix.Params): Promise {\n if (params.codigoBanco === BANK.BoletoInside) {\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 return params.pixUrl\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]: 'https://www.sicoob.com.br/web/sicoob/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 [BANK.Assas]: ''\n }[params.codBanco]\n } else {\n if ([BANK.Assas].includes(params.codBanco)) {\n bankSlipUrl = params.linkBoleto\n } else {\n bankSlipUrl = await this.generateBankSlip.generate(params)\n }\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 } from '@/domain/usecases'\nimport { AccessDeniedError, NotFoundError, 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 (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\n method: 'get',\n params: { codigoUnidade: 0 }\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.notFound: throw new NotFoundError('Endereço de API não está respondendo')\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, NotFoundError, 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 case HttpStatusCode.notFound: throw new NotFoundError('Endereço de API não está respondendo')\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetProspectConfigs } from '@/domain/usecases'\nimport { ProspectConfigsModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\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 case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveTheme } from '@/domain/usecases'\nimport { ThemeModel } from '@/domain/models'\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 (params: ThemeModel): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\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.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 { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetVersions } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetVersions implements GetVersions {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/versoes`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return body as GetVersions.Result\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, UnexpectedResultFormatError } from '@/domain/errors'\nimport { NFResultModel } from '@/domain/models'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\n\nexport class RemoteGetNFs implements GetNFs {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetNFsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/NotasFiscais`,\n method: 'get',\n params,\n headers:\n {\n 'content-type': 'application/json',\n 'cache-control': 'no-cache'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\n\nexport class RemoteOpenDanfe implements OpenDanfe {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenDanfeParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-danfe`,\n method: 'post',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n window.open(`/${OpenDanfe.RN.FOLDER_DEFAULT_PDF_DANFE}/${params.cliCodigo}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenNfse implements OpenNfse {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenNfseParams): Promise {\n const { linkAutenticidade, ...dataParams } = params\n\n if (dataParams.utilizarDevExpress) {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/EspelhoNotaFiscal`,\n method: 'get',\n params: {\n ...dataParams,\n producao: true\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenNfse.RN.FOLDER_DEFAULT_NFSE}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n } else if (linkAutenticidade) {\n window.open(linkAutenticidade, '_blank')\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\n\nexport class RemoteOpenLeaseReceipt implements OpenLeaseReceipt {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenLeaseReceiptParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-recibo-locacao`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenLeaseReceipt.RN.FOLDER_DEFAULT_LEASE_RECEIPT}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteAddNewOs implements AddNewOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async add (params: AddNewOsParams): Promise {\n const bodyParams = {\n ...params,\n avisoViagem: false,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddTravelAlertOs, AddTravelAlertOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { TravelAlertBuilder } from '@/data/builders'\n\nexport class RemoteAddTravelAlertOs implements AddTravelAlertOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly travelAlertBuilder: TravelAlertBuilder\n ) {}\n\n async add (params: AddTravelAlertOsParams): Promise {\n const observacoes = this.travelAlertBuilder\n .setDates(params.dataSaida, params.horaSaida, params.dataRetorno, params.horaRetorno)\n .requester(params.solicitante)\n .mailRequester(params.email)\n .phone1Requester(params.telefone1)\n .phone2Requester(params.telefone2)\n .addResponsibles(params.chavesSomenteComCentral, params.responsaveisChave)\n .addAuthorized(params.possuiAutorizados, params.autorizados)\n .addVehicles(params.possuiVeiculosCuidadosCentral, params.veiculos)\n .addRecommendations(params.recomendacoes)\n .build()\n\n const bodyParams = {\n cliente: params.cliente,\n empresa: params.empresa,\n modalidade: params.modalidade,\n solicitante: params.solicitante,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal,\n avisoViagem: true,\n observacoes\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders, GetServiceOrdersParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetServiceOrders implements GetServiceOrders {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetServiceOrdersParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/lista-oss`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body as ServiceOrderResult\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance, GetOsAttendanceParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetOsAttendance implements GetOsAttendance {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getAttendences (params: GetOsAttendanceParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/osatendimentos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetailParams, GetServiceOrderDetail } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetServiceOrderDetail implements GetServiceOrderDetail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getDetail (params: GetServiceOrderDetailParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/dados-os`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais } from '@/domain/usecases/redes-sociais/get-redes-sociais'\n\nexport class RemoteGetRedesSociais implements GetRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getRedesSociais (params: GetRedesSociais.Params): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'get',\n params,\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 { GetDigitalAccepts } 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: GetDigitalAccepts.Params): 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 GetDigitalAccepts.Result\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 { RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers } 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: GetRemotyUsers.Params): 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): GetRemotyUsers.Result {\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 { MoniUserResult } from '@/domain/models'\nimport { GetMoniUsers } 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: GetMoniUsers.Params): 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): GetMoniUsers.Result {\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 { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { NotificationOnDBModel } from '@/domain/models'\nimport { GetClientNotifications, GetClientNotificationsParams } from '@/domain/usecases'\n\nexport class RemoteGetClientNotifications implements GetClientNotifications {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetClientNotificationsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/buscar-notificacoes-cliente`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as NotificationOnDBModel[]\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 { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { DeleteNotification, DeleteNotificationParams } from '@/domain/usecases'\n\nexport class RemoteDeleteNotification implements DeleteNotification {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async delete (params: DeleteNotificationParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/deletar-notificacao-cliente`,\n method: 'delete',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n break\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 { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { SaveNotificationToken, SaveNotificationTokenParams } from '@/domain/usecases'\n\nexport class RemoteSaveNotificationToken implements SaveNotificationToken {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async save (params: SaveNotificationTokenParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/salvar-token-notificacao-cliente`,\n method: 'post',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n break\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 { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ChangeTokenNotificationsStatus, ChangeTokenNotificationsStatusParams } from '@/domain/usecases'\n\nexport class RemoteChangeTokenNotificationsStatus implements ChangeTokenNotificationsStatus {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async change (params: ChangeTokenNotificationsStatusParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/trocar-status-notificacoes-token`,\n method: 'put',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n break\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 { 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 let statusCode = ['ERR_NETWORK', 'ECONNRESET', 'ERR_CONNECTION_RESET'].includes(error.code) ? 404 : error?.response?.status\n statusCode = statusCode || 400\n const body = error?.response?.data || error.message || 'Rede indisponível'\n\n return {\n statusCode,\n body\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 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: __DEV__ ? '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 FIREBASE_API_KEY: 'QUl6YVN5RGRDQ041RXFrNVhZSWZHUHM2OWRjMVJMTmVibmdEWGE0',\n FIREBASE_AUTH_DOMAIN: 'cG9ydGFsLWRvLWNsaWVudGUtZWE3MjEuZmlyZWJhc2VhcHAuY29t',\n FIREBASE_PROJECT_ID: 'cG9ydGFsLWRvLWNsaWVudGUtZWE3MjE=',\n FIREBASE_STORAGE_BUCKET: 'cG9ydGFsLWRvLWNsaWVudGUtZWE3MjEuYXBwc3BvdC5jb20=',\n FIREBASE_MESSAGING_SENDER_ID: 'OTY5MTUxMzUwODI1',\n FIREBASE_APP_ID: 'MTo5NjkxNTEzNTA4MjU6d2ViOjMzOGNkOWQ0N2ZmMWZmNTExNmY0Mzg=',\n FIREBASE_VAPID_KEY: 'Qkp3aldVcVpmS1lXWDZITElKS2dsUzFzTEllYUVaYTZJQVlTVUVOTVd6OW43TGgxVkZ4aC13Q2tja2NOdmkyZ0FoUUxsSXNwNmJfaE5mTGNMenZXaDlv'\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 { 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 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, DateIsBeforeParams } 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 isBefore (dates: DateIsBeforeParams): boolean {\n return moment(dates.startDate).isBefore(dates.endDate)\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 { EnvironmentDecoderAdapter } from '@/infra/criptography'\n\nexport const makeEnvironmentDecoderAdapterFactory = (): EnvironmentDecoderAdapter => new EnvironmentDecoderAdapter()\n","import { EnvironmentEncoderAdapter } from '@/infra/criptography'\n\nexport const makeEncoderAdapterFactory = (): EnvironmentEncoderAdapter => new EnvironmentEncoderAdapter()\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'\nimport { makeEncoderAdapterFactory } from '@/main/adapters'\n\nexport const makeGetUser = (): GetUserByDocument => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n const encoder = makeEncoderAdapterFactory()\n\n return new RemoteGetUser(url, httpClient, encoder)\n}\n","import { PortalLogout } from '@/domain/usecases'\nimport { RemotePortalLogout } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePortalLogout = (): PortalLogout => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePortalLogout(url, httpClient)\n}\n","import { MetricsLogin } from '@/domain/usecases'\nimport { RemoteMetricsLogin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeMetricsLogin = (): MetricsLogin => {\n const url = env.METRICS_LOG_IN_OUT\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteMetricsLogin(url, httpClient)\n}\n","import { ForgotPassword } from '@/domain/usecases'\nimport { RemoteForgotPassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeForgotPassword = (): ForgotPassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteForgotPassword(url, httpClient)\n}\n","import { GetRedesSociais } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '../../http'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { RemoteGetRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetRedesSociais = (): GetRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRedesSociais(url, httpClient)\n}\n","import { UpdatePassword } from '@/domain/usecases'\nimport { RemoteUpdatePassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeUpdatePassword = (): UpdatePassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUpdatePassword(url, httpClient)\n}\n","import { UpdateDefaultPassword } from '@/domain/usecases'\nimport { RemoteUpdateDefaultPassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeUpdateDefaultPassword = (): UpdateDefaultPassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUpdateDefaultPassword(url, httpClient)\n}\n","import { ValidatePasswordRecoveryResult, ValidatePasswordRecovery } from '@/domain/usecases'\nimport { RemoteValidatePasswordRecovery } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeValidatePasswordRecovery = (): ValidatePasswordRecovery => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteValidatePasswordRecovery(url, httpClient)\n}\n","import { NFResultModel } from '@/domain/models'\nimport { RemoteGetNFs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetNFs } from '@/domain/usecases'\n\nexport const makeGetRemoteGetNFs = (): GetNFs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetNFs(url, httpClient)\n}\n","import { RemoteOpenDanfe } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenDanfe } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenDanfe = (): OpenDanfe => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenDanfe(url, httpClient)\n}\n","import { RemoteOpenNfse } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenNfse } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenNfse = (): OpenNfse => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenNfse(url, httpClient)\n}\n","import { RemoteOpenLeaseReceipt } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenLeaseReceipt } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenLeaseReceipt = (): OpenLeaseReceipt => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenLeaseReceipt(url, httpClient)\n}\n","import { SaveRedesSociais } from '@/domain/usecases'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteSaveRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeSaveRedesSociais = (): SaveRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveRedesSociais(url, httpClient)\n}\n","import { AddNewOs } from '@/domain/usecases'\nimport { RemoteAddNewOs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAddNewOs = (): AddNewOs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAddNewOs(url, httpClient)\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\nexport class TravelAlertBuilder {\n constructor (private readonly dateAdapter: DateAdapter) {}\n\n private observation = ''\n\n public 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 mailRequester (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 { 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 httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveTheme(env.API_URL, httpClient)\n}\n","import { UploadFile } from '@/domain/usecases'\nimport { RemoteUploadFile } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { FileModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeUploadFile = (): UploadFile => {\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUploadFile(env.API_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 { VersionsModel } from '@/domain/models'\nimport { GetVersions } from '@/domain/usecases'\nimport { RemoteGetVersions } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetVersions = (): GetVersions => {\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetVersions(env.API_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 { RemoteDeleteNotification } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { DeleteNotification } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeDeleteNotification = (): DeleteNotification => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteDeleteNotification(url, httpClient)\n}\n","import { NotificationOnDBModel } from '@/domain/models'\nimport { RemoteGetClientNotifications } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { GetClientNotifications } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetClientNotifications = (): GetClientNotifications => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetClientNotifications(url, httpClient)\n}\n","import { RemoteSaveNotificationToken } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { SaveNotificationToken } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeSaveNotificationToken = (): SaveNotificationToken => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveNotificationToken(url, httpClient)\n}\n","import { RemoteChangeTokenNotificationsStatus } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { ChangeTokenNotificationsStatus } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeChangeTokenNotificationsStatus = (): ChangeTokenNotificationsStatus => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteChangeTokenNotificationsStatus(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_ACCESS_PASSWORD = '@expires_p'\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 isPasswordSecure: (password: string) => boolean\n setSecurePassword: () => void\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 isAdmin = tokenDecode?.['tipo-usuario'] === 'ADMIN'\n\n return isAdmin\n }, [autentication?.accessToken])\n\n const login = useCallback((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 client = getClient()\n const isAdmin = currentClient?.toString().toUpperCase() === 'ADMIN' || currentClient?.toString().endsWith('@insidesistemas.com.br')\n \n if (!autentication?.accessToken?.access_token) {\n return false\n }\n\n const auth = jwtAdapter.decode(autentication?.accessToken?.access_token)\n if (!isAdmin) {\n if (!auth || !EMMITERS_AUTHORIZED.includes(auth.iss)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n\n const roles = auth['integraservice-webapi'] || auth['portal-service']\n if (typeof roles === 'string') {\n if (!ROLES_AUTHORIZED.includes(roles)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n } else {\n if ((roles as []).every(role => !ROLES_AUTHORIZED.includes(role))) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n }\n }\n\n expireDate.setUTCSeconds(auth.exp)\n const isExpired = today > expireDate\n const hadAccessToken = !!localStorageAdapter.get(KEY_ACCESS_TOKEN)\n\n if (isExpired && hadAccessToken) {\n notify.error('Sessão Expirada, faça o login novamente!')\n logout()\n if (getCurrentClient()) {\n void makePortalLogout()\n .logout({ cliente: parseInt(getCurrentClient()), version })\n .catch(console.error)\n }\n\n return false\n }\n\n window?.clarity?.(\"identify\", client?.codCliente?.toString(), client?.unidade?.toString(), window?.location?.host, client?.email)\n\n return true\n }, [autentication?.accessToken])\n\n const isPasswordSecure = useCallback((password: string): boolean => {\n const minLength = 8\n const hasUpperCase = /[A-Z]/.test(password)\n const hasLowerCase = /[a-z]/.test(password)\n const hasNumber = /\\d/.test(password)\n const hasSpecialChar = /[!@#$%^&*(),.?\":{}|<>]/.test(password)\n\n return (\n password.length >= minLength &&\n hasUpperCase &&\n hasLowerCase &&\n hasNumber &&\n hasSpecialChar\n )\n }, [])\n\n const setSecurePassword = useCallback((): void => {\n localStorageAdapter.set(KEY_ACCESS_PASSWORD, 'insecure_password')\n }, [])\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 isPasswordSecure,\n setSecurePassword,\n getSaveUser,\n saveUser,\n isAdmin\n }\n}\n","import { atom, selector } from 'recoil'\nimport { BoletoInsideConfigs, ConfigModel, FinancialConfigs, GeneralConfigs, InvoiceConfigs, MenuAccessPermissionsConfigs, ServiceOrderConfigs } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'settingsLoadingState',\n default: true\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 & BoletoInsideConfigs\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 cardContainerButton: {\n width: '305px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start'\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 { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { BoletoInsideConfigs, FinancialConfigs } from '@/domain/models'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, CardSwitch, Loading, Text } from '@/presentation/components'\nimport { PaymentAvailableToUpdate, HidePaymentMethods, financialConfigsState, ActionsButtons, isOpenSettingsDetailsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const FinancialSettings: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const theme = useTheme()\n const [financialConfigs, setFinancialConfig] = useRecoilState(financialConfigsState)\n const [initialFinancialConfigs] = useState(financialConfigs)\n const setIsOpenSettingsDetailsState = useSetRecoilState(isOpenSettingsDetailsState)\n\n const themeClient = getThemeClient()\n\n const handleChange = (param: keyof (FinancialConfigs & BoletoInsideConfigs), value: boolean | string): void => {\n setFinancialConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialFinancialConfigs) !== JSON.stringify(financialConfigs)\n }\n\n return (\n \n \n {!financialConfigs\n ? \n : <>\n {financialConfigs.permitePagamentoCartao &&\n <>\n handleChange('validaCartaoCredito', !financialConfigs.validaCartaoCredito)}\n />\n handleChange('atualizaAutomaticoCartao', !financialConfigs.atualizaAutomaticoCartao)}\n />\n handleChange('visualizaFaturaCartaoVencida', !financialConfigs.visualizaFaturaCartaoVencida)}\n />\n \n }\n handleChange('bolEntradaConfirmada', !financialConfigs.bolEntradaConfirmada)}\n />\n handleChange('bolExibeOriginal', !financialConfigs.bolExibeOriginal)}\n />\n\n handleChange('bolAtualizaBoletos', !financialConfigs.bolAtualizaBoletos)}\n >\n \n \n\n handleChange('bolOcultaFormasPgto', !financialConfigs.bolOcultaFormasPgto)}\n >\n \n \n\n handleChange('exibeAlteracaoCartao', !financialConfigs.exibeAlteracaoCartao)}\n >\n handleChange('emailAlteracaoCartao', text)}\n maxLength={300}\n />\n \n\n {/* // TODO: adicionar configuração de email de pagamento com cartão */}\n {financialConfigs.permitePagamentoCartao &&\n handleChange('pagamentoCartaoAtivo', !financialConfigs.pagamentoCartaoAtivo)}\n />\n }\n \n \n Condições Para Listar Duplicatas\n \n \n }\n onPress={() => setIsOpenSettingsDetailsState(true)}\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\nexport const hasErrorGeneralConfigState = atom>({\n key: 'hasErrorGeneralConfigState',\n default: []\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GeneralConfigs } from '@/domain/models'\nimport { TestEmail } from '@/domain/usecases'\nimport { Box, CardSwitch, dateAdapterAtom, DatePicker, Loading } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { ActionsButtons, EmailSendingTester, generalConfigsState } from '@/presentation/pages/Settings/components'\nimport { hasErrorGeneralConfigState, 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 const [hasError, setError] = useRecoilState(hasErrorGeneralConfigState)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setInitialGeneralConfigs(generalConfigs)\n }, [initialGeneralConfigs])\n\n const handleChange = (param: keyof GeneralConfigs, value: string | boolean | number): void => {\n setError([])\n setGeneralConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const handleChangeDate = useCallback((field: keyof GeneralConfigs, date: Date): void => {\n const dateFormatted = dateAdapter.format(date, 'YYYY-MM-DD')\n\n setGeneralConfig(currentState => ({\n ...currentState,\n [field]: dateFormatted\n }))\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 error={hasError.includes('emailViagem')}\n style={{\n flex: 1\n }}\n />\n \n\n { }}\n >\n handleChange('emailSac', text)}\n error={hasError.includes('emailSac')}\n />\n \n\n handleChange('exibeChavesAvisoViagem', !generalConfigs.exibeChavesAvisoViagem)}\n />\n\n handleChange('visualizaDetalhesContrato', !generalConfigs.visualizaDetalhesContrato)}\n />\n\n { }}\n readonly={true}\n >\n handleChange('limiteDiasVisualizaCritica', parseInt(dias))}\n maxLength={300}\n />\n \n handleChange('bloqueiaInativos', !generalConfigs.bloqueiaInativos)}\n />\n\n generalConfigs.limiteDataRetroativa ? handleChange('limiteDataRetroativa', '') : handleChangeDate('limiteDataRetroativa', dateAdapter.today())}\n >\n handleChangeDate('limiteDataRetroativa', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n \n \n }\n \n {hasChanged() && }\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { TextInput } from 'react-native-paper'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { TestEmail } from '@/domain/usecases'\nimport { CardSwitch, Button, Stack, Text } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { initialGeneralConfigsState, generalConfigsState, isLoadingTestMailState, hasErrorGeneralConfigState } 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 const [hasError, setError] = useRecoilState(hasErrorGeneralConfigState)\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 setError([])\n }\n\n const handleSendTestMail = (): void => {\n setLoadingTestMail(true)\n\n const testEmailParams = {\n email: generalConfigs.email,\n copia: generalConfigs.copia,\n nome: generalConfigs.nome\n }\n\n testEmail\n .test(testEmailParams)\n .then(isValid => {\n setMailSended(isValid)\n if (isValid) {\n setResponseMail('O e-mail de teste foi enviado com sucesso! Verifique sua caixa de entrada e lixo eletrônico')\n } else {\n throw new Error('O e-mail de teste não pode ser enviado, verifique os dados de acesso e tente novamente')\n }\n })\n .catch(error => {\n setMailSended(false)\n setResponseMail(error.message)\n })\n .finally(() => setLoadingTestMail(false))\n }\n\n return (\n {}}\n readonly={true}\n >\n \n handleChange('nome', text)}\n maxLength={50}\n style={{\n flex: 0.3\n }}\n />\n handleChange('email', text)}\n maxLength={300}\n style={{\n flex: 0.7\n }}\n />\n mailSended\n ? \n : \n }\n onPress={handleSendTestMail}\n loading={isLoadingTestMail}\n disabled={mailSended}\n />\n \n <>\n {mailSended &&\n \n {responseMail &&\n <>\n \n {responseMail}\n \n }\n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingTestMailState = atom({\n key: 'isLoadingTestMailState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { InvoiceConfigs } from '@/domain/models'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { ActionsButtons, invoiceConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const InvoicesSettings: React.FC = () => {\n const [invoiceConfigs, setInvoiceConfig] = useRecoilState(invoiceConfigsState)\n const [initialInvoiceConfigs] = useState(invoiceConfigs)\n\n const handleChangeConfig = (param: keyof InvoiceConfigs, value: boolean): void => {\n setInvoiceConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialInvoiceConfigs) !== JSON.stringify(invoiceConfigs)\n }\n\n return (\n \n {!invoiceConfigs\n ? \n : <>\n \n handleChangeConfig('nfsOcultarInfos', !invoiceConfigs.nfsOcultarInfos)}\n />\n handleChangeConfig('nfsOcultarLink', !invoiceConfigs.nfsOcultarLink)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { ServiceOrderConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, serviceOrderConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const ServiceOrderSettings: React.FC = () => {\n const [serviceOrderConfigs, setServiceOrderConfig] = useRecoilState(serviceOrderConfigsState)\n const [initialServiceOrderConfigs] = useState(serviceOrderConfigs)\n\n const utilizaEmpresaPadrao = serviceOrderConfigs?.empresaPadraoOS\n\n const handleChange = (param: keyof ServiceOrderConfigs, value: string | boolean): void => {\n setServiceOrderConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialServiceOrderConfigs) !== JSON.stringify(serviceOrderConfigs)\n }\n\n return (\n \n {!serviceOrderConfigs\n ? \n : \n handleChange('exibirOsFechadas', !serviceOrderConfigs.exibirOsFechadas)}\n />\n\n handleChange('osSemTecnico', !serviceOrderConfigs.osSemTecnico)}\n />\n handleChange('limitaOs', !serviceOrderConfigs.limitaOs)}\n />\n\n handleChange('abrirOsSemFaturamento', !serviceOrderConfigs.abrirOsSemFaturamento)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('exibeMensagemAbrirOs', !serviceOrderConfigs.exibeMensagemAbrirOs)}\n >\n handleChange('mensagemAberturaOs', text)}\n />\n \n\n handleChange('empresaPadraoOS', !utilizaEmpresaPadrao)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('enviarAvisoAberturaOs', !serviceOrderConfigs.enviarAvisoAberturaOs)}\n >\n handleChange('emailOs', text)}\n />\n \n \n }\n {hasChanged() && }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n selectBoxMobile: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'grab',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FormaPagamento } from '@/domain/models'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const PaymentAvailableToUpdate: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, update: boolean): void => {\n let formasPagamentoAtualiza: FormaPagamento[]\n let formasPagamentoNaoAtualiza: FormaPagamento[]\n\n if (update) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoNaoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoNaoAtualiza = financialConfigs.formasPagamentoNaoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoAtualiza = [...financialConfigs.formasPagamentoAtualiza, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoAtualiza = financialConfigs.formasPagamentoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoNaoAtualiza = [...financialConfigs.formasPagamentoNaoAtualiza, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamentoAtualiza = formasPagamentoAtualiza\n newConfig.formasPagamentoNaoAtualiza = formasPagamentoNaoAtualiza\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, update: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const handleClick = (codFormaPagamento: string, update: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const acceptDrop = (e: React.DragEvent): void => {\n e.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento atualizadas\n \n {financialConfigs.formasPagamentoAtualiza.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n \n )}\n \n \n\n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento não atualizadas\n
\n {financialConfigs.formasPagamentoNaoAtualiza.map((item) =>\n onDrag(event, item.codigo.toString())}\n onClick={() => handleClick(item.codigo.toString(), true)}\n style={styles.optionSelectorChip}\n >\n \n {`${item.codigo} - ${item.descricao}`}\n
\n )}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useRecoilState } from 'recoil'\nimport { FormaPagamento } from '@/domain/models'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const HidePaymentMethods: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, hide: boolean): void => {\n let formasPagamento: FormaPagamento[]\n let formasPagamentoOculta: FormaPagamento[]\n\n if (hide) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamento\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamento = financialConfigs.formasPagamento\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoOculta = [...financialConfigs.formasPagamentoOcultas, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoOcultas\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoOculta = financialConfigs.formasPagamentoOcultas\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamento = [...financialConfigs.formasPagamento, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamento = formasPagamento\n newConfig.formasPagamentoOcultas = formasPagamentoOculta\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, hide: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const handleClick = (codFormaPagamento: string, hide: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento a apresentar\n
\n {financialConfigs.formasPagamento.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), true)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n )}\n \n \n\n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento ocultas\n
\n {financialConfigs.formasPagamentoOcultas.map((formaPagamento) => (\n onDrag(event, formaPagamento.codigo.toString())}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n style={styles.optionSelectorChip}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n ))}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import React, { useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, menuAccessPermissionsConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const MenuAccessPermissions: React.FC = () => {\n const [menuAccessPermissionsConfigs, setMenuAccessPermissionsConfig] = useRecoilState(menuAccessPermissionsConfigsState)\n const [initialMenuAccessPermissionsConfigs] = useState(menuAccessPermissionsConfigs)\n\n const handleChangeSetting = (param: keyof MenuAccessPermissionsConfigs, value: boolean): void => {\n setMenuAccessPermissionsConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialMenuAccessPermissionsConfigs) !== JSON.stringify(menuAccessPermissionsConfigs)\n }\n\n return (\n \n {!menuAccessPermissionsConfigs\n ? \n : <>\n \n handleChangeSetting('aceiteDigital', !menuAccessPermissionsConfigs.aceiteDigital)}\n />\n handleChangeSetting('contrato', !menuAccessPermissionsConfigs.contrato)}\n />\n handleChangeSetting('cartao', !menuAccessPermissionsConfigs.cartao)}\n />\n handleChangeSetting('documentosUteis', !menuAccessPermissionsConfigs.documentosUteis)}\n />\n handleChangeSetting('boleto', !menuAccessPermissionsConfigs.boleto)}\n />\n handleChangeSetting('notaFiscal', !menuAccessPermissionsConfigs.notaFiscal)}\n />\n {\n handleChangeSetting('monitoramento', !menuAccessPermissionsConfigs.monitoramento)\n }}\n />\n handleChangeSetting('os', !menuAccessPermissionsConfigs.os)}\n />\n handleChangeSetting('rastreamento', !menuAccessPermissionsConfigs.rastreamento)}\n />\n handleChangeSetting('sac', !menuAccessPermissionsConfigs.sac)}\n />\n handleChangeSetting('telefonesUteis', !menuAccessPermissionsConfigs.telefonesUteis)}\n />\n handleChangeSetting('viagem', !menuAccessPermissionsConfigs.viagem)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardConfigState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardConfigState)\n const { discardChanges } = useSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardConfigState = atom({\n key: 'isOpenDiscardConfigState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const isOpenSaveOrDiscardConfigState = atom({\n key: 'isOpenSaveOrDiscardConfigState',\n default: false\n})\n\nexport const isLoadingSaveOrDiscardConfigState = atom({\n key: 'isLoadingSaveOrDiscardConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { configsState, initialConfigsState } from '@/presentation/pages/Settings/components'\nimport { isLoadingSaveOrDiscardConfigState, isOpenSaveOrDiscardConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveOrDiscardProps = {\n saveUnitConfig: SaveUnitConfig\n}\n\nexport const ModalOnSaveOrDiscard: React.FC = ({ saveUnitConfig }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { discardChanges } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveOrDiscardConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveOrDiscardConfigState)\n const setInitialConfigs = useSetRecoilState(initialConfigsState)\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n handleClose()\n notify.show('As alterações foram descartadas')\n }\n\n const handleSaveChanges = (): void => {\n setLoading(true)\n handleClose()\n\n saveUnitConfig\n .save(currentConfig)\n .then(hasUpdated => {\n if (hasUpdated) {\n notify.show(`As configurações da unidade ${currentConfig.uniCodigo.toString().padStart(4, '0')} foram gravadas com sucesso`)\n setInitialConfigs(currentConfig)\n } else {\n notify.show(`Não foi possível gravar as configurações da unidade ${currentConfig.uniCodigo}, tente novamente`, { variant: 'error' })\n }\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n handleClose()\n })\n .finally(() => setLoading(false))\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Existem alterações que ainda não foram gravadas na unidade.
Descarte ou grave as alterações para prosseguir
\n\n \n \n \n \n
\n }\n
\n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenSaveConfigState = atom({\n key: 'isOpenSaveConfigState',\n default: false\n})\n\nexport const isLoadingSaveConfigState = atom({\n key: 'isLoadingSaveConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, 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, hasErrorGeneralConfigState } from '@/presentation/pages/Settings/components'\nimport { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\nimport { GeneralConfigs } from '@/domain/models'\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, isValidMail } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveConfigState)\n const setError = useSetRecoilState(hasErrorGeneralConfigState)\n\n const generalConfigValidation = (): boolean => {\n const errors: Array = []\n currentConfig.email && !isValidMail(currentConfig.email) && errors.push('email')\n currentConfig.emailViagem && currentConfig.enviaEmailViagem && !isValidMail(currentConfig.emailViagem) && errors.push('emailViagem')\n currentConfig.emailSac && !isValidMail(currentConfig.emailSac) && errors.push('emailSac')\n if (errors.length) {\n notify.error('Preencha os campos com e-mail válido!')\n setError(errors)\n setOpen(false)\n }\n\n return !errors.length\n }\n\n const handleSaveChanges = useCallback((): void => {\n if (!generalConfigValidation()) { return }\n\n setLoading(true)\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 { atom } from 'recoil'\n\nexport const isOpenSettingsDetailsState = atom({\n key: 'isOpenSettingsDetailsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n height: '100%',\n width: '100%',\n overflow: 'scroll',\n alignItems: 'stretch'\n },\n section: {\n paddingTop: 10,\n paddingVertical: 8,\n },\n titleLarge: {\n fontSize: 20,\n fontWeight: '600',\n marginBottom: 16,\n color: '#1a1a1a',\n },\n titleMedium: {\n fontSize: 16,\n fontWeight: '600',\n marginBottom: 8,\n color: '#2d2d2d',\n },\n bodyText: {\n fontSize: 14,\n lineHeight: 20,\n color: '#4a4a4a',\n marginBottom: 6,\n },\n emphasized: {\n fontWeight: '500',\n color: '#2d2d2d',\n },\n});\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Box, Text, ModalBase } from '@/presentation/components'\nimport { configsState } from '@/presentation/pages/Settings/components'\nimport { isOpenSettingsDetailsState } from './atom'\nimport { View } from 'react-native'\nimport { styles } from './styles'\nimport { GetTickets } from '@/domain/usecases'\n\ntype ModalSettingsDetailsProps = {\n}\n\nexport const ModalSettingsDetails: React.FC = () => {\n const currentConfig = useRecoilValue(configsState)\n const [isOpen, setOpen] = useRecoilState(isOpenSettingsDetailsState)\n\n\n const handleClose = (): void => setOpen(false)\n console.log('Current ', currentConfig);\n\n return (\n \n \n \n Condições para listar duplicatas\n \n Unidade permitir pagamento por cartão e ter no minimo uma forma de pagamento por cartão cadastrada.\n \n Ou\n \n A Duplicata conter o campo 'NossoNumero' e campo 'Bloqueto' preenchidos.\n \n \n A exibição das duplicatas é influenciado pela configuração do campo 'TempoExibirPortal'\n da tabela BancosEmpresa que é configurado em quantidade de dias\n e muda de acordo com o banco e a forma de pagamento,\n caso o valor do campo seja diferente de 0 a seguinte condição será aplicada:\n Data de Vencimento da Duplicata deve ser maior ou igual a Data atual menos o TempoExibirPortal.\n \n Filtros:\n \n Por padrão o periodo filtrado é de {GetTickets.RN.DEFAULT_DAYS_AGO} átras\n até {GetTickets.RN.DEFAULT_DAYS_LATER} após a data atual.\n \n \n A data inicial do filtro pode mudar caso a configuração\n 'Exibir informações Fiscais e Financeiras a partir da data' estiver ativa,\n caso a data da configuração seja mais recente que {GetTickets.RN.DEFAULT_DAYS_AGO} dias\n será utilizado a data da configuração.\n \n\n Formas de pagamento Unidade {currentConfig?.uniCodigo}\n {currentConfig?.formasPagamento?.map(forma => {\n return {forma.codigo} - {forma?.descricao}\n })}\n \n \n \n )\n}\n","import { useCallback } from 'react'\nimport { BoletoInsideConfigs, 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 isValidMail: (mail: string) => boolean\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 isValidMail = useCallback((mail: string): boolean => {\n return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(mail)\n }, [])\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 & BoletoInsideConfigs)\n\n setGeneralConfigs({\n uniCodigo: config.uniCodigo,\n uniUnidade: config.uniUnidade,\n nome: config.nome,\n email: config.email,\n copia: config.copia,\n enviaEmailViagem: config.enviaEmailViagem,\n emailViagem: config.emailViagem,\n emailAlteracaoCadastro: config.emailAlteracaoCadastro,\n emailSac: config.emailSac,\n chaveResidencia: config.chaveResidencia,\n exibeChavesAvisoViagem: config.exibeChavesAvisoViagem,\n exibeAlteracaoCadastro: config.exibeAlteracaoCadastro,\n conPorCodigo: config.conPorCodigo,\n servidorSmtp: config.servidorSmtp,\n autentica: config.autentica,\n usuario: config.usuario,\n senha: config.senha,\n porta: config.porta,\n ssl: config.ssl,\n leitura: config.leitura,\n liberacoesPortal: config.liberacoesPortal,\n visualizaDetalhesContrato: config.visualizaDetalhesContrato,\n limiteDiasVisualizaCritica: config.limiteDiasVisualizaCritica,\n bloqueiaInativos: config.bloqueiaInativos,\n limiteDataRetroativa: config.limiteDataRetroativa\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 isValidMail\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 formatDocument: (document: string) => string\n formatCEP: (cep: string) => string\n validateCPF: (cpf: string) => boolean\n validateCNPJ: (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 const validateCNPJ = (cnpj: string): boolean => {\n const cnpjNumeros = cnpj.replace(/\\D/g, '')\n\n if (cnpjNumeros.length !== 14) {\n return false\n }\n\n if (/^(\\d)\\1{13}$/.test(cnpjNumeros)) {\n return false\n }\n\n let soma = 0\n const peso1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]\n\n for (let i = 0; i < 12; i++) {\n soma += parseInt(cnpjNumeros[i]) * peso1[i]\n }\n\n let resto = soma % 11\n const digito1 = resto < 2 ? 0 : 11 - resto\n\n soma = 0\n const peso2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]\n\n for (let i = 0; i < 13; i++) {\n soma += parseInt(cnpjNumeros[i]) * peso2[i]\n }\n\n resto = soma % 11\n const digito2 = resto < 2 ? 0 : 11 - resto\n\n if (parseInt(cnpjNumeros[12]) !== digito1 || parseInt(cnpjNumeros[13]) !== digito2) {\n return false\n }\n\n return true\n }\n\n const formatDocument = (document: string): string => {\n const numericValue = document.replace(/\\D/g, '')\n\n if (numericValue.length <= 11) {\n return numericValue\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d{1,2})$/, '$1-$2')\n } else if (numericValue.length <= 14) {\n return numericValue\n .replace(/(\\d{2})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1/$2')\n .replace(/(\\d{4})(\\d{1,2})$/, '$1-$2')\n }\n\n return numericValue\n }\n\n const formatCEP = (cep: string): string => {\n const numericValue = cep.replace(/\\D/g, '')\n return numericValue.replace(/^(\\d{5})(\\d{1,3})?$/, '$1-$2').substring(0, 9)\n }\n\n return {\n formatCurrency,\n formatDocument,\n formatCEP,\n removeNewLines,\n validateCPF,\n validateCNPJ\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 { useCallback } from 'react'\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 = __DEV__ ? '/img/' : '/portalservice/img/'\n\n const getImage = useCallback(async (\n image: string,\n defaultImage: 'logo' | 'login' = 'logo'\n ): Promise => {\n if (!__DEV__) {\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\n try {\n return await fetch(imageFolder)\n .then(resp => {\n return resp.status === 200 ? imageFolder : ''\n })\n } catch (error) {\n console.info(`Não foi possível localizar a imagem em ${imageFolder}`, error.message)\n }\n }\n\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 const base64toFile = useCallback((\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, selector } from 'recoil'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\nimport { ThemeColors, ThemeModel } from '@/domain/models'\nimport { theme } from '@/presentation/styles'\nimport { unitsState } from '@/presentation/components'\n\nexport const isLoadingState = atom({\n key: 'isLoadingThemeState',\n default: true\n})\n\nexport const errorThemeState = atom({\n key: 'errorThemeState',\n default: ''\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 selectedImageLogoState = atom({\n key: 'selectedImageLogoState',\n default: ''\n})\n\nexport const selectedBackgroundState = atom({\n key: 'selectedBackgroundState',\n default: null as unknown as File\n})\n\nexport const selectedImageBackgroundState = atom({\n key: 'selectedImageBackgroundState',\n default: ''\n})\n\nexport type ExternalAddress = {\n enderecoExterno: string\n unidades: number[]\n}\n\nexport const currentListServerUrlState = selector({\n key: 'currentListServerUrlState',\n get: ({ get }) => {\n const units = get(unitsState)\n\n const serverList = units.reduce((acc, unit) => {\n const { enderecoExterno, ...dadosUnidade } = unit\n if (!acc[enderecoExterno]) {\n acc[enderecoExterno] = {\n enderecoExterno,\n unidades: []\n }\n }\n acc[enderecoExterno].unidades.push(dadosUnidade.codigo)\n return acc\n }, [])\n console.log(Object.values(serverList))\n return Object.values(serverList)\n }\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 from 'react'\nimport { Image, StyleSheet } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport * as ImagePicker from 'expo-image-picker'\nimport { HStack, Text, VStack } from '@/presentation/components'\nimport { useImage, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedBackgroundState, selectedImageBackgroundState } 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 setSelectedBackground = useSetRecoilState(selectedBackgroundState)\n const [background, setBackground] = useRecoilState(selectedImageBackgroundState)\n\n const themeClient = getThemeClient()\n\n const backgroundImage = !__DEV__ && 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 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 from 'react'\nimport { Image, StyleSheet, TouchableOpacity } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport * as ImagePicker from 'expo-image-picker'\nimport { useImage, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedImageLogoState, selectedLogoState } from '@/presentation/pages/Theme/components'\nimport { Text, VStack } from '@/presentation/components'\n\ntype LogoSelectorProps = {\n fileName: string\n}\n\nexport const LogoSelector: React.FC = (props) => {\n const theme = useTheme()\n const { base64toFile } = useImage()\n const { getThemeClient } = useThemeClient()\n const setSelectedLogo = useSetRecoilState(selectedLogoState)\n const [logo, setLogo] = useRecoilState(selectedImageLogoState)\n\n const themeClient = getThemeClient()\n const logoImage = !__DEV__ && props.fileName\n ? { uri: props.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?.split(',')[1]\n const file = base64toFile(base64Logo, `Logo_${new Date().getMilliseconds()}.png`)\n setSelectedLogo(file)\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 { ThemeModel } from '@/domain/models'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnSaveChangeThemeState } from './atom'\nimport { styles } from './styles'\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 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({\n file: selectedLogo,\n scope: 'logo'\n })\n\n selectedBackgroundLogo && await uploadFile.upload({\n file: selectedBackgroundLogo,\n scope: 'loginBackground'\n })\n\n const saveThemeParams: ThemeModel = {\n ...themeClient.theme,\n imageLogo: selectedLogo ? selectedLogo.name : themeClient.theme.imageLogo,\n bgLogin: selectedBackgroundLogo ? selectedBackgroundLogo.name : themeClient.theme.bgLogin\n }\n\n const themeResult = await saveTheme.save(saveThemeParams)\n notify.show(themeResult)\n\n setThemeClient(saveThemeParams)\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) || !!selectedLogo || !!selectedBackground\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 { snackBarProviderState } from '@/presentation/components'\n\ntype StatusVariant = 'success' | 'error' | 'info' | 'warning'\n\ntype NotifyParams = {\n variant?: StatusVariant\n duration?: number\n delay?: number\n}\n\ntype SnackBarProps = {\n id: string\n variant: StatusVariant\n duration: number\n message: string\n}\n\ntype NotifyProps = {\n show: (message: string, options?: NotifyParams) => void\n success: (message: string, options?: NotifyParams) => void\n warning: (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\nfunction useNotify (): NotifyProps {\n const [messages, setMessages] = useRecoilState(snackBarProviderState)\n\n const showMessage = useCallback(\n (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: options.variant ?? 'success',\n duration: options.duration ?? 7000,\n message\n }\n\n if (!messages.some(currentMessage => currentMessage.message === message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n setTimeout(() => dismiss(newMessage.id), newMessage.duration)\n }\n },\n [messages, setMessages]\n )\n\n const show = (message: string, options?: NotifyParams): void => {\n showMessage(message, { ...options })\n }\n\n const success = (message: string, options?: NotifyParams): void => {\n showMessage(message, { variant: 'success', ...options })\n }\n\n const info = (message: string, options?: NotifyParams): void => {\n showMessage(message, { variant: 'info', ...options })\n }\n\n const warning = (message: string, options?: NotifyParams): void => {\n showMessage(message, { variant: 'warning', ...options })\n }\n\n const error = (message: string, options?: NotifyParams): void => {\n showMessage(message, { variant: 'error', ...options })\n }\n\n const dismiss = useCallback((messageId: string): void => {\n setMessages(currentMessages => currentMessages.filter(message => message.id !== messageId))\n }, [setMessages])\n\n return { show, success, info, warning, error, dimiss: dismiss }\n}\n\nexport default useNotify\n","import { atom } from 'recoil'\nimport { ProspectConfigsModel } 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","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 { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\nimport * as GeneralState from '@/presentation/components/Atoms'\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(GeneralState.prospectConfigsState)\n const areaInterests = useRecoilValue(GeneralState.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 } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\nimport * as GeneralState from '@/presentation/components/Atoms'\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(GeneralState.unitsState)\n const [isOpenSelectUnit, setOpenSelectUnit] = useRecoilState(isOpenSelectUnitState)\n const [isOpenSelectInterest, setOpenSelectInterest] = useRecoilState(isOpenSelectInterestState)\n const areaInterestsList = useRecoilValue(GeneralState.prospectInterestAreaState)\n const prospectConfigs = useRecoilValue(GeneralState.prospectConfigsState)\n const setProspectInterestAreaList = useSetRecoilState(GeneralState.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.codigo,\n descricao: unit.codigo.toString(),\n data: unit,\n isSelected: unit.codigo === 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 } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\nimport * as GeneralState from '@/presentation/components/Atoms'\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(GeneralState.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 } from '@/presentation/pages/ProspectSettings/components'\nimport * as GeneralState from '@/presentation/components/Atoms'\n\nexport const TableAreaOfInterest: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const areaInterests = useRecoilValue(GeneralState.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 } from '@/presentation/pages/ProspectSettings/components'\nimport * as GeneralState from '@/presentation/components/Atoms'\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(GeneralState.prospectConfigsState)\n const areaInterest = useRecoilValue(GeneralState.prospectInterestAreaState)\n const setProspectInterestArea = useSetRecoilState(GeneralState.prospectInterestAreaState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = useCallback((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 { initializeApp } from 'firebase/app'\nimport { getMessaging } from 'firebase/messaging'\nimport { makeEnvironmentDecoderAdapterFactory } from '@/main/adapters'\nimport { isSupported } from '@firebase/messaging'\nimport env from '@/main/config/env'\n\nconst environmentDecoder = makeEnvironmentDecoderAdapterFactory()\n\nconst firebaseConfig = {\n apiKey: env.FIREBASE_API_KEY,\n authDomain: env.FIREBASE_AUTH_DOMAIN,\n projectId: env.FIREBASE_PROJECT_ID,\n storageBucket: env.FIREBASE_STORAGE_BUCKET,\n messagingSenderId: env.FIREBASE_MESSAGING_SENDER_ID,\n appId: env.FIREBASE_APP_ID\n}\n\nconst treatedFirebaseConfig = environmentDecoder.objectDecode(firebaseConfig)\n\nexport const messaging = async () => {\n try {\n const isSupportedBrowser = await isSupported()\n if (isSupportedBrowser) {\n const firebaseApp = initializeApp(treatedFirebaseConfig)\n return getMessaging(firebaseApp)\n }\n return null\n } catch (err) {\n console.error(err)\n return null\n }\n}\n","type PermissionsProps = {\n requestNotification: () => Promise\n}\n\nenum PermissionsStatus {\n Granted = 'granted',\n Denied = 'denied',\n Default = 'default'\n}\n\ntype NotificationPermissionReturn = {\n isGranted: boolean\n errorMessage?: string\n}\n\nexport const usePermissions = (): PermissionsProps => {\n const requestNotification = async (): Promise => {\n const permission = await Notification.requestPermission()\n\n const returnObject: NotificationPermissionReturn = {\n isGranted: permission === PermissionsStatus.Granted\n }\n\n if (!returnObject.isGranted) {\n returnObject.errorMessage = 'Notificações negadas. Elas podem ser necessárias para algumas funcionalidades.'\n }\n\n return returnObject\n }\n\n return {\n requestNotification\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 { Unidade } from '@/domain/models'\n\nexport const currentUnitState = atom({\n key: 'currentUnitState',\n default: null as unknown as Unidade\n})\n","import { atom } from 'recoil'\nimport { Unidade } from '@/domain/models'\n\nexport const unitsState = atom({\n key: 'unitsState',\n default: [] as Unidade[]\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 { atom } from 'recoil'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const dateAdapterAtom = atom({\n key: 'dateAdapterState',\n default: makeDateAdapterFactory()\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 { makeEncoderAdapterFactory } from '@/main/adapters'\n\nexport const encoderAdapterAtom = atom({\n key: 'encoderAdapterAtom',\n default: makeEncoderAdapterFactory()\n})\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 { 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 { AreaInterest, EntidadeService } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingProspectConfigsState = atom({\n key: 'isLoadingProspectConfigsState',\n default: false\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","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 { 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 = !__DEV__ && backgroundEmpresa\n ? { uri: backgroundEmpresa }\n : require('../../../../assets/hexagon-bg.svg')\n\n useEffect(() => {\n themeClient.bgLogin && !__DEV__ &&\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 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 borderRadius?: number\n onClick?: () => void\n}\n\nexport const Chip: React.FC = ({\n text,\n color,\n containerStyle,\n textStyle,\n onClick,\n variant = 'filled',\n borderRadius\n}) => {\n const theme = useTheme()\n\n const containerStyles = {\n filled: {\n ...styles.container,\n borderRadius: borderRadius ?? 50,\n backgroundColor: color ?? theme.colors.primary,\n color: 'transparent',\n borderColor: 'transparent',\n ...containerStyle\n },\n outlined: {\n ...styles.container,\n borderRadius: borderRadius ?? 50,\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: 10,\n flex: 1,\n justifyContent: 'center'\n },\n cardContent: {\n display: 'flex',\n gap: 8,\n flexWrap: 'wrap'\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 maxWidth?: number | string\n minWidth?: number | string\n}\n\nexport const CardBase: React.FC = ({\n children,\n maxWidth,\n minWidth\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n {children}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Box, NoResultMessage, Loading } from '@/presentation/components'\n\ntype CardListProps = {\n children: React.ReactNode\n isLoading: boolean\n isEmpty: boolean\n textLoading: string\n textEmpty?: string\n}\n\nexport const CardList: React.FC = (props) => {\n const { isMobile } = useMediaQueries()\n\n const makeComponent = (): React.ReactNode => {\n if (props.isLoading) {\n return \n }\n\n return props.isEmpty ? : props.children\n }\n\n return (\n \n {makeComponent()}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n flexGrow: 1,\n gap: 16\n },\n containerMobile: {\n flexWrap: 'nowrap',\n flexGrow: 1,\n gap: 16\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Switch, Card, Text, Chip, HStack } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype CardSWitchProps = {\n text: string\n value: boolean\n handleSwitch: () => void\n children?: JSX.Element[] | JSX.Element | boolean\n readonly?: boolean\n boletoInside?: boolean\n showIfValueFalsy?: boolean\n}\n\nexport const CardSwitch: React.FC = ({\n text,\n children,\n value,\n handleSwitch,\n readonly,\n boletoInside,\n showIfValueFalsy = false\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeCliente = getThemeClient()\n const showChildren = showIfValueFalsy ? !value : !!value\n\n return (\n \n \n \n \n {text}\n {boletoInside && }\n \n {!readonly && }\n \n {children && showChildren &&\n \n {children}\n \n }\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n marginVertical: 8,\n marginHorizontal: 16,\n borderRadius: 4\n },\n cardContent: {\n justifyContent: 'space-between',\n flex: 1\n },\n cardContentHeader: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1,\n paddingLeft: 0,\n paddingRight: 0\n },\n cardChildren: {\n marginBottom: 8,\n marginTop: 16\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n width: '100%',\n marginTop: 8\n }\n})\n","import React, { useMemo } from 'react'\nimport { DatePickerInput } from 'react-native-paper-dates'\nimport { DateAdapter } from '@/data/protocols'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype DatePickerProps = {\n dateAdapter: DateAdapter\n label: string\n value: Date | undefined\n onChange: (date: Date | undefined) => void\n disabled?: boolean\n initYear?: number\n finalYear?: number\n}\n\nexport const DatePicker: React.FC = ({\n label,\n value,\n onChange,\n disabled,\n initYear,\n finalYear,\n dateAdapter\n}) => {\n const theme = useTheme()\n\n const INITIAL_YEAR = useMemo(() => initYear ?? dateAdapter.today().getFullYear() - 5, [])\n const FINAL_YEAR = useMemo(() => finalYear ?? dateAdapter.today().getFullYear() + 12, [])\n\n const inputStyle = {\n ...styles.container,\n backgroundColor: theme.colors.backgroundInput,\n color: theme.colors.greyDark\n }\n\n return (\n \n )\n}\n","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DrawerContentScrollView, DrawerItemList } from '@react-navigation/drawer'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, SocialMidias, socialMediaState } from '@/presentation/components'\n\nexport function CustomDrawer (props: any): JSX.Element {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const socialMidias = useRecoilValue(socialMediaState)\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","\nexport enum NavigationRoute {\n Home = 'home',\n Login = 'login',\n Prospect = 'cadastro',\n Financial = 'financeiro',\n ServiceOrders = 'ordens-servico',\n SAC = 'sac',\n Invoices = 'notas-fiscais',\n DigitalAccepts = 'aceites-digitais',\n CreditCard = 'cartao',\n TravelAlert = 'aviso-viagem',\n PhoneUtils = 'telefone-uteis',\n DocumentsUtils = 'documentos-uteis',\n Monitoring = 'monitoramento',\n Track = 'rastreamento',\n Contract = 'contrato',\n OsDetail = 'os',\n StatementOfDebts = 'declaracao-debitos',\n\n Theme = 'theme',\n Configs = 'configs',\n SocialMedia = 'redes-socias',\n ProspectSettings = 'prospect-settings',\n EventsSettings = 'events-settings',\n ChangePassword = 'alterar-senha',\n RecoveryPassword = 'recuperar-senha'\n}\n\nconst handleScreenPath = (screen: string): string => {\n const basePath = __DEV__ ? screen : `portalservice/${screen}`\n return basePath\n}\n\nexport const screensClientNavigator = {\n [NavigationRoute.Home]: handleScreenPath(NavigationRoute.Home.toString()),\n [NavigationRoute.Prospect]: handleScreenPath(NavigationRoute.Prospect.toString()),\n [NavigationRoute.Financial]: handleScreenPath(NavigationRoute.Financial.toString()),\n [NavigationRoute.Invoices]: handleScreenPath(NavigationRoute.Invoices.toString()),\n [NavigationRoute.SAC]: handleScreenPath(NavigationRoute.SAC.toString()),\n [NavigationRoute.DigitalAccepts]: handleScreenPath(NavigationRoute.DigitalAccepts.toString()),\n [NavigationRoute.ServiceOrders]: handleScreenPath(NavigationRoute.ServiceOrders.toString()),\n [NavigationRoute.CreditCard]: handleScreenPath(NavigationRoute.CreditCard.toString()),\n [NavigationRoute.TravelAlert]: handleScreenPath(NavigationRoute.TravelAlert.toString()),\n [NavigationRoute.PhoneUtils]: handleScreenPath(NavigationRoute.PhoneUtils.toString()),\n [NavigationRoute.DocumentsUtils]: handleScreenPath(NavigationRoute.DocumentsUtils.toString()),\n [NavigationRoute.Monitoring]: handleScreenPath(NavigationRoute.Monitoring.toString()),\n [NavigationRoute.Track]: handleScreenPath(NavigationRoute.Track.toString()),\n [NavigationRoute.OsDetail]: {\n path: `${handleScreenPath(NavigationRoute.OsDetail.toString())}/:param`,\n parse: {\n param: (param: string) => param\n }\n },\n [NavigationRoute.Contract]: handleScreenPath(NavigationRoute.Contract.toString()),\n [NavigationRoute.StatementOfDebts]: handleScreenPath(NavigationRoute.StatementOfDebts.toString()),\n [NavigationRoute.ChangePassword]: handleScreenPath(NavigationRoute.ChangePassword.toString()),\n [NavigationRoute.RecoveryPassword]: {\n path: `${handleScreenPath(NavigationRoute.RecoveryPassword.toString())}/:idRecuperacao`,\n parse: {\n param: (param: string) => param\n }\n }\n}\n\nexport const screensAdminNavigator = {\n [NavigationRoute.Login]: handleScreenPath(NavigationRoute.Login.toString()),\n [NavigationRoute.Theme]: handleScreenPath(NavigationRoute.Theme.toString()),\n [NavigationRoute.Configs]: handleScreenPath(NavigationRoute.Configs.toString()),\n [NavigationRoute.SocialMedia]: handleScreenPath(NavigationRoute.SocialMedia.toString()),\n [NavigationRoute.ProspectSettings]: handleScreenPath(NavigationRoute.ProspectSettings.toString()),\n [NavigationRoute.EventsSettings]: handleScreenPath(NavigationRoute.EventsSettings.toString())\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n gap: 16\n },\n footer: {\n display: 'flex',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n headerText: {\n padding: 12,\n fontWeight: '500',\n textTransform: 'uppercase'\n }\n})\n","import { atom } from \"recoil\";\n\nexport const isLoadingSocialMidiaState = atom({\n key: 'isLoadingSocialMidiaState',\n default: false\n})","import React, { useCallback, useEffect } from 'react'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais, GetUnits, SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases'\nimport { useErrorHandler, useNotify, useThemeClient, useTheme } from '@/presentation/hooks'\nimport { Box, Button, Text, TextInput, Footer, socialMediaState, currentUnitState, unitsState, HStack, UnitsSelector, Loading } from '@/presentation/components'\nimport { styles } from './styles'\nimport { SafeAreaView } from 'react-native'\nimport { isLoadingSocialMidiaState } from '@/presentation/pages/RedesSociais/components/atom'\n\ntype RedesSociasProps = {\n saveRedesSociais: SaveRedesSociais\n getRedesSociais: GetRedesSociais\n getUnits: GetUnits\n}\n\nexport const RedesSociais: React.FC = ({ saveRedesSociais, getRedesSociais, getUnits }) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(socialMediaState)\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitState)\n const [isLoadingSocialMidia, setIsLoadingSocialMidia] = useRecoilState(isLoadingSocialMidiaState)\n const setUnits = useSetRecoilState(unitsState)\n const { getThemeClient } = useThemeClient()\n const themeClient = getThemeClient()\n const theme = useTheme()\n\n useEffect(() => {\n setIsLoadingSocialMidia(true)\n getUnits\n .getAll()\n .then(async units => {\n if (units.length) {\n setUnits(units)\n setCurrentUnit(units.at(0))\n }\n })\n .catch(handleError)\n .finally(() => setIsLoadingSocialMidia(false))\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n if (!currentUnit?.codigo) { return }\n setIsLoadingSocialMidia(true)\n\n const getRedesSociaisParams: GetRedesSociais.Params = {\n codUnidade: currentUnit.codigo\n }\n\n getRedesSociais\n .getRedesSociais(getRedesSociaisParams)\n .then(setState)\n .catch(handleError)\n .finally(() => setIsLoadingSocialMidia(false))\n }, [currentUnit])\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 codUnidade: currentUnit.codigo\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 \n \n \n Redes Sociais da Unidade\n \n \n \n \n {isLoadingSocialMidia\n ? \n :\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 handleChange('youtube', text)}\n leading={(props) => }\n label='Link do Youtube'\n />\n \n
\n \n
\n
\n }\n
\n
\n
\n \n )\n}\n","import React from 'react'\nimport { RedesSociais } from '@/presentation/pages/RedesSociais'\nimport { makeGetRedesSociais, makeGetUnits, 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, useSetRecoilState } 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, currentUnitState, HStack, Loading, Text, UnitsSelector, unitsState, IconButton } from '@/presentation/components'\nimport { useSettings, useTheme, useThemeClient, useMediaQueries, useErrorHandler } from '@/presentation/hooks'\nimport {\nInvoicesSettings,\nGeneralSettings,\nFinancialSettings,\nServiceOrderSettings,\nMenuAccessPermissions,\nModalOnSaveOrDiscard,\nModalOnDiscardChanges,\nModalOnSaveChanges,\nisLoadingState,\nisOpenSettingsDetailsState,\nModalSettingsDetails,\n}\n from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\ntype SettingsProps = {\n getUnitConfigs: GetUnitConfig\n saveUnitConfig: SaveUnitConfig\n getUnits: GetUnits\n testEmail: TestEmail\n}\n\nconst Tab = createMaterialTopTabNavigator()\n\nexport const Settings: React.FC = ({\n getUnitConfigs,\n saveUnitConfig,\n getUnits,\n testEmail\n}) => {\n const handleError = useErrorHandler()\n const theme = useTheme()\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitState)\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const { startConfig } = useSettings()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const setUnits = useSetRecoilState(unitsState)\n const setOpenSettingsDetails = useSetRecoilState(isOpenSettingsDetailsState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setLoading(true)\n getUnits\n .getAll()\n .then(async units => {\n if (units.length) {\n setUnits(units)\n setCurrentUnit(units.at(0))\n }\n })\n .catch(handleError)\n .finally(() => { setLoading(false) })\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n if (currentUnit) {\n const getConfigParams: GetUnitConfigParams = {\n codUnidade: currentUnit.codigo\n }\n\n getUnitConfigs\n .getAll(getConfigParams)\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [currentUnit])\n )\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 Configurações da Unidade\n \n \n \n \n {isLoading\n ? \n : \n \n \n \n \n \n \n }\n \n\n \n \n \n \n \n \n )\n}\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 } 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 { NotFoundError } from '@/domain/errors'\nimport { GetTheme, GetUnits, GetVersions, SaveTheme, UploadFile } from '@/domain/usecases'\nimport { useErrorHandler, useImage, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, VStack, Text, Loading, Chip, unitsState } from '@/presentation/components'\nimport { ActionsButtons, ColorPicker, LoginBackgroundSelector, LogoSelector, ModalOnDiscardChanges, ModalOnSaveChanges, errorThemeState, isLoadingState } from '@/presentation/pages/Theme/components'\nimport { styles } from './styles'\nimport { version as portalVersion } from '../../../../package.json'\n\nexport type ThemeProps = {\n getTheme: GetTheme\n getUnits: GetUnits\n saveTheme: SaveTheme\n uploadFile: UploadFile\n getVersions: GetVersions\n}\n\nexport const Theme: React.FC = (props) => {\n const theme = useTheme()\n const notify = useNotify()\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 [error, setError] = useRecoilState(errorThemeState)\n const [units, setUnits] = useRecoilState(unitsState)\n const handleError = useErrorHandler(error => {\n if (error instanceof NotFoundError) {\n setError('O endereço do IntegraService da unidade não está respondendo, verifique se foi configurado corretamente e tente novamente')\n }\n })\n\n const themeClient = getThemeClient()\n const hasExternalServerUrl = !!units.find(unit => themeClient.codigoUnidade === unit.codigo)?.enderecoExterno\n\n const validateOutdatedApps = (): void => {\n props.getVersions\n .get()\n .then(versions => {\n let needUpdate = false\n\n const currentAppVersionNumber = +portalVersion.replaceAll('.', '')\n const lastAppVersionNumber = +versions.versaoAtualPortal.replaceAll('.', '')\n if ((lastAppVersionNumber && currentAppVersionNumber) && (lastAppVersionNumber > currentAppVersionNumber)) {\n needUpdate = true\n }\n\n const currentIntegraVersionNumber = +versions.versaoLocalIntegra.replaceAll('.', '')\n const lastIntegraVersionNumber = +versions.versaoAtualIntegra.replaceAll('.', '')\n if ((lastIntegraVersionNumber && currentIntegraVersionNumber) && lastIntegraVersionNumber > currentIntegraVersionNumber) {\n needUpdate = true\n }\n\n needUpdate && notify.warning('Versão desatualizada. Por favor, entre em contato com o suporte e atualize para a versão mais recente.')\n })\n .catch(console.error)\n }\n\n useFocusEffect(\n useCallback(() => {\n setError('')\n\n setLoading(true)\n\n props.getUnits\n .getAll()\n .then(async units => {\n if (units.length) {\n setUnits(units)\n }\n })\n .catch(error => {\n handleError(error)\n setLoading(false)\n })\n\n handleGetTheme()\n }, [])\n )\n\n const handleGetTheme = useCallback((): void => {\n setLoading(true)\n props.getTheme\n .get()\n .then(theme => {\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 validateOutdatedApps()\n })\n .catch(handleError)\n .finally(() => { setLoading(false) })\n }, [themeClient.imageLogo, themeClient.bgLogin])\n\n if (isLoading) {\n return \n }\n\n return (\n \n \n \n \n \n Tema\n \n\n {(!hasExternalServerUrl && !!units.length && !isLoading) &&\n \n }\n \n {error\n ? \n \n \n : \n {['css', '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() || ['css', 'padrao'].includes(themeClient?.fonte)) &&\n \n }\n \n \n \n )\n}\n","import React from 'react'\nimport { makeGetTheme, makeGetUnits, makeGetVersions, 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, 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 } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\nimport * as GeneralState from '@/presentation/components/Atoms'\n\ntype ProspectSettingsProps = {\n getProspectConfigs: GetProspectConfigs\n saveProspectConfigs: SaveProspectConfigs\n}\n\nexport const ProspectSettings: React.FC = ({\n getProspectConfigs,\n saveProspectConfigs\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(GeneralState.prospectConfigsState)\n const setAddOptionOpen = useSetRecoilState(isOpenAddConfigUnitState)\n const handleError = useErrorHandler()\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\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, makeSaveProspectConfigs } from '@/main/factories/usecases'\n\nexport const makeProspectSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n headerContainer: {\n width: '100%',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n titleBox: {\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.40)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.70)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.70)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useErrorHandler, useEventsSettings, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ShowEvents, GetEventsSettings, GetSigmaDeskConnections } from '@/domain/usecases'\nimport { Box, PageHeader, Loading, VStack, Text, Select, NoResultMessage, InputField, Divider } from '@/presentation/components'\nimport { ActionsButtons, ModalOnDiscardChanges, ModalOnSaveChanges, eventsSettingsState, isLoadingState, isOpenConnectionMenuState, sigmaDeskConnectionsState } from '@/presentation/pages/EventsSettings/components'\nimport { TiposEventosModel } from '@/domain/models'\nimport { styles } from './styles'\n\ntype EventsSettingsProps = {\n getSigmaDeskConnections: GetSigmaDeskConnections\n getEventsSettings: GetEventsSettings\n showEvents: ShowEvents\n}\n\nexport const EventsSettings: React.FC = ({ getSigmaDeskConnections, getEventsSettings, showEvents }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [connections, setConnections] = useRecoilState(sigmaDeskConnectionsState)\n const [isOpenConnectionMenu, setOpenConnectionMenu] = useRecoilState(isOpenConnectionMenuState)\n const { startConfig, hasChanged } = useEventsSettings()\n const [events, setEvents] = useRecoilState(eventsSettingsState)\n const resetEvents = useResetRecoilState(eventsSettingsState)\n const handleError = useErrorHandler()\n\n const handleBounceEvent = (codEvento: string, show: boolean): void => {\n let eventosTodos: TiposEventosModel[]\n let eventosExibidos: TiposEventosModel[]\n\n if (show) {\n const selectedEvent = events.listaTipos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosTodos = events.listaTipos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosExibidos = [...events.listaExibidos, selectedEvent]\n } else {\n const selectedEvent = events.listaExibidos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosExibidos = events.listaExibidos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosTodos = [...events.listaTipos, selectedEvent]\n }\n\n const newConfig = Object.assign({}, events)\n newConfig.listaTipos = eventosTodos\n newConfig.listaExibidos = eventosExibidos\n\n setEvents(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codEvento: string): void => {\n event.dataTransfer.setData('codEvento', codEvento)\n }\n\n const onDrop = (event: React.DragEvent, show: boolean): void => {\n const codEvento = event.dataTransfer.getData('codEvento')\n handleBounceEvent(codEvento, show)\n }\n\n const handleClick = (codEvento: string, show: boolean): void => {\n handleBounceEvent(codEvento, show)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n const handleGetEvents = (): void => {\n resetEvents()\n setLoading(true)\n\n const params = {\n codInterno: getSelectedConnection() as number\n }\n\n getEventsSettings\n .getAll(params)\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleSelectConnection = (id: number): void => {\n const updatedConnections = connections.map((connection) => {\n if (connection.id === id) return { ...connection, isSelected: true }\n else if (connection.isSelected) return { ...connection, isSelected: false }\n\n return connection\n })\n\n resetEvents()\n setConnections(updatedConnections)\n }\n\n const getSelectedConnection = (type: 'description' | 'id' = 'id'): number | string => {\n const selectedConnection = connections?.find((connection) => connection.isSelected)\n\n if (type === 'description') {\n return selectedConnection ? selectedConnection.descricao : ''\n } else {\n return selectedConnection ? selectedConnection.id : 0\n }\n }\n\n useEffect(() => { getSelectedConnection() !== 0 && handleGetEvents() }, [connections])\n\n useFocusEffect(\n useCallback(() => {\n getSigmaDeskConnections\n .getAll()\n .then(setConnections)\n .catch(handleError)\n }, [])\n )\n\n return (\n \n \n \n }\n />\n setOpenConnectionMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n {(getSelectedConnection() !== 0)\n ? isLoading\n ? \n : <>\n \n \n * Caso nenhum evento seja selecionado para ser exibido, todos os eventos serão listados.\n \n { isMobile &&\n \n ** Clique sobre o item para muda-lo de listagem.\n \n }\n \n\n \n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Exibidos\n
\n {events?.listaExibidos?.map((eventoExibido) => (\n onDrag(event, eventoExibido.codigo)}\n onClick={() => handleClick(eventoExibido.codigo, false)}\n style={styles.optionSelectorChip}\n >\n \n {`${eventoExibido.codigoExibicao} - ${eventoExibido.descricao}`}\n
\n ))}\n \n \n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Ocultos\n
\n {events?.listaTipos?.map((eventoComum) =>\n onDrag(event, eventoComum.codigo)}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(eventoComum.codigo, true)}\n >\n \n {`${eventoComum.codigoExibicao} - ${eventoComum.descricao}`}\n
\n )}\n \n \n
\n
\n {hasChanged() && }\n \n : (connections.length > 0)\n ? \n : \n }\n
\n \n \n setOpenConnectionMenu(false)}\n onSelect={(id) => handleSelectConnection(id)}\n title={'Selecione a conexão de monitoramento'}\n items={connections}\n />\n
\n )\n}\n","import React from 'react'\nimport { EventsSettings } from '@/presentation/pages/EventsSettings'\nimport { makeShowEvents, makeGetEventsSettings, makeGetSigmaDeskConnectionsFactory } from '@/main/factories/usecases'\n\nexport const makeEventsSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { TicketModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingFinancialState = atom({\n key: 'isLoadingFinancialState',\n default: true\n})\n\nexport const isLoadingOpenBankSlip = atom({\n key: 'isLoadingOpenBankSlip',\n default: false\n})\n\nexport const ticketsState = atom({\n key: 'ticketsState',\n default: [] as TicketModel[]\n})\n","\nimport { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingCreditCardState',\n default: true\n})\n\nexport const isEditableState = atom({\n key: 'isEditableCreditCardState',\n default: true\n})\n\nexport const creditCardState = atom({\n key: 'creditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useCreditCard, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, TextInput, VStack } from '@/presentation/components'\nimport { creditCardState } from '@/presentation/pages/Cartao/components'\n\ntype AddNewCreditCardProps = {\n isLoading: boolean\n isEditable: boolean\n}\n\nexport const AddNewCreditCard: React.FC = ({\n isEditable,\n isLoading\n}) => {\n const { maskCreditCardValidity, maskCreditCardNumber, getCreditCardType, isValidExpiration } = useCreditCard()\n const { getThemeClient } = useThemeClient()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n\n const themeClient = getThemeClient()\n\n const handleChange = (name: string, value: string): void => {\n setCreditCard(currentState => ({\n ...currentState,\n [name]: value,\n type: getCreditCardType(currentState.numero)\n }))\n }\n\n return (\n \n \n handleChange('nome', text)}\n />\n handleChange('numero', maskCreditCardNumber(text.replace(/[^0-9]/g, '')))}\n />\n \n }\n onChangeText={(text) => { handleChange('expiracao', maskCreditCardValidity(text)) }}\n />\n handleChange('ccv', text.replace(/[^0-9]/g, ''))}\n />\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n formArea: {\n width: '100%',\n maxWidth: 428,\n padding: 16\n }\n})\n","import { CardFlagsTypes } from '@/domain/models'\n\ntype CreditCardResult = {\n getCreditCardType: (creditCardNumber: string) => CardFlagsTypes\n maskCreditCardNumber: (creditCardNumber: string) => string\n maskCreditCardValidity: (value: string) => string\n isValidExpiration: (exp: string) => boolean\n}\n\nexport const useCreditCard = (): CreditCardResult => {\n const getCreditCardType = (creditCardNumber: string): CardFlagsTypes => {\n let result: CardFlagsTypes | 'unknown' = 'unknown'\n\n if (/^5[1-5]/.test(creditCardNumber)) {\n result = 'mastercard'\n } else if (/^4/.test(creditCardNumber)) {\n result = 'visa'\n } else if (/^3[47]/.test(creditCardNumber)) {\n result = 'amex'\n } else if (/3(?:0[0-5]|[68][0-9])[0-9]{11}/.test(creditCardNumber)) {\n result = 'diners'\n } else if (/6(?:011|5[0-9]{2})[0-9]{12}/.test(creditCardNumber)) {\n result = 'discover'\n }\n\n return result\n }\n\n const maskCreditCardNumber = (creditCardNumber: string): string => {\n const trimmedNumber = creditCardNumber.replace(/\\s/g, '')\n\n const regex = /(\\d{4})(?=\\d)/g\n\n return trimmedNumber.replace(regex, '$1 ')\n }\n\n const maskCreditCardValidity = (value: string): string => {\n const cleanedText = value.replace(/[^0-9]/g, '')\n let formattedText = cleanedText\n\n if (cleanedText.length > 2) {\n formattedText = cleanedText.slice(0, 2) + '/' + cleanedText.slice(2)\n }\n\n return formattedText\n }\n\n const isValidExpiration = (exp: string): boolean => {\n const regex = /^(0[1-9]|1[0-2])\\/\\d{2}$/\n return regex.test(exp)\n }\n\n return {\n getCreditCardType,\n maskCreditCardNumber,\n maskCreditCardValidity,\n isValidExpiration\n }\n}\n","import React from 'react'\nimport { StyleSheet, Image, ImageBackground } from 'react-native'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, Text, VStack } from '@/presentation/components'\nimport { CreditCardModel } from '@/domain/models'\n\ntype CredCardProps = {\n creditCard: CreditCardModel\n}\n\nexport const CreditCard: React.FC = ({ creditCard }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n {creditCard?.numero}\n \n \n {creditCard?.nome}\n \n {creditCard?.expiracao}\n {creditCard?.ccv}\n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 428,\n borderRadius: 4\n },\n card: {\n width: '100%',\n maxWidth: 428,\n padding: 16,\n paddingBottom: 32,\n flex: 1,\n borderRadius: 4,\n justifyContent: 'space-between',\n shadowColor: 'rgba(0, 0, 0, 0.12)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 8,\n borderColor: 'rgba(0, 0, 0, 0.12)',\n borderWidth: 1\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { creditCardState, isEditableState, isOpenEditConfirmationState } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\nexport const ModalModalEditConfirmation: React.FC = () => {\n const theme = useTheme()\n const [isOpen, setOpen] = useRecoilState(isOpenEditConfirmationState)\n const setCreditCard = useSetRecoilState(creditCardState)\n const setEditable = useSetRecoilState(isEditableState)\n\n const handleClose = (): void => {\n setOpen(false)\n }\n\n const handleEdit = (): void => {\n setEditable(true)\n setOpen(false)\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n ccv: ''\n }))\n }\n\n return (\n \n \n Deseja realmente alterar os dados do cartão?\n O número e CVC do cartão deverão ser informados novamente.\n\n \n \n \n \n \n \n )\n}\n","\nimport { atom } from 'recoil'\n\nexport const isOpenEditConfirmationState = atom({\n key: 'isOpenEditConfirmationState',\n default: false\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CardFlagsTypes } from '@/domain/models'\nimport { Button, HStack, ModalBase, Text, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, CreditCard } from '@/presentation/pages/Cartao/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { creditCardsState, isOpenTicketViewState, errorAddOtherCreditCardState, isOpenAddOtherCreditCardState, otherCreditCardState } from '@/presentation/pages/Financial/components'\n\nexport const AddOtherCreditCard: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useRecoilState(isOpenAddOtherCreditCardState)\n const [otherCreditCard, setOtherCreditCard] = useRecoilState(otherCreditCardState)\n const [error, setError] = useRecoilState(errorAddOtherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const setCreditCards = useSetRecoilState(creditCardsState)\n\n const themeClient = getThemeClient()\n\n const handleResetCard = (): void => {\n setOtherCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n const handleAddCreditCard = (): void => {\n if (isValidDataCard()) {\n handleClose()\n setCreditCards(currentState => [...currentState, otherCreditCard])\n handleResetCard()\n } else {\n setError('Todos os dados do cartão devem ser informados')\n }\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setOpenTicketView(true)\n setError('')\n }\n\n const isValidDataCard = (): boolean => {\n if (\n !otherCreditCard.nome ||\n !otherCreditCard.numero ||\n !otherCreditCard.expiracao ||\n otherCreditCard.expiracao.length < 4 ||\n !otherCreditCard.expiracao.includes('/') ||\n !otherCreditCard.ccv ||\n otherCreditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }\n\n return (\n \n \n Adicionar Cartão {isMobile ? '' : 'para pagamento'}\n \n \n \n \n {error &&\n \n \n Todos os dados do cartão devem ser informados\n \n }\n \n \n \n \n \n \n \n \n )\n}\n","import { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isOpenAddOtherCreditCardState = atom({\n key: 'isOpenAddOtherCreditCardState',\n default: false\n})\n\nexport const otherCreditCardState = atom({\n key: 'otherCreditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes\n }\n})\n\nexport const errorAddOtherCreditCardState = atom({\n key: 'errorAddOtherCreditCardState',\n default: ''\n})\n","import { StyleSheet } from 'react-native'\nexport { default as CopyIcon } from '@expo/vector-icons/MaterialCommunityIcons'\nexport { default as MaterialIcons } from '@expo/vector-icons/MaterialIcons'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'fit-content',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n statusIcon: {\n height: 20,\n width: 20\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { GenerateInsideBankSlip, GetTicketPix, OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Text, IconButton, HStack, Clipboard, Chip, PixIcon } from '@/presentation/components'\nimport { isLoadingOpenBankSlip, isOpenTicketPixState, isOpenTicketViewState, selectedTicketPixState, 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(selectedTicketPixState)\n const setOpenPix = useSetRecoilState(isOpenTicketPixState)\n const setOpen = useSetRecoilState(isOpenTicketViewState)\n const setTicketView = useSetRecoilState(ticketViewState)\n const [isLoading, setLoading] = useRecoilState(isLoadingOpenBankSlip)\n\n const client = getClient()\n\n const handleCopyBarCode = (): void => {\n Clipboard.setStringAsync(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 = (ticket: TicketModel): void => {\n setOpenPix(true)\n setCurrentTicketPix(ticket)\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) || ticket.pixUrl) &&\n }\n onPress={() => handleOpenPix(ticket)}\n testID='fatura-pix'\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n venceu em {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n const makeOpened = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura {current ? 'Atual' : ''} {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.saldo)}\n \n \n \n {([BANK.BoletoInside].includes(ticket.codBanco) || ticket.pixUrl) &&\n }\n onPress={() => handleOpenPix(ticket)}\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n vencimento {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n return (\n handleOpenTicketView(ticket)}\n >\n {{\n paga: makePaid(),\n vencida: makeExpired(),\n 'em Aberto': makeOpened(),\n venceHoje: makeOpened()\n }[ticket.situacao]}\n \n )\n}\n","import React from 'react'\nimport { TouchableOpacity } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CreditCardModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Checkbox, HStack, Text, VStack } from '@/presentation/components'\nimport { creditCardSelectedState } from '@/presentation/pages/Financial/components'\n\ntype CreditCardItemProps = {\n creditCard: CreditCardModel\n isEditable?: boolean\n}\n\nexport const CreditCardItem: React.FC = ({\n creditCard,\n isEditable = true\n}) => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [creditCardSelected, setCreditCardSelected] = useRecoilState(creditCardSelectedState)\n\n const themeClient = getThemeClient()\n const isSelected = creditCard.numero === creditCardSelected?.numero\n\n return (\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n >\n \n \n \n \n \n \n {creditCard.nome}\n \n \n **** **** **** {creditCard.numero.slice(-4)}\n \n \n {isEditable &&\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n />\n }\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n paddingTop: 12\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useState } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { PayWithCreditCard } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Chip, Loading, Text, VStack } from '@/presentation/components'\nimport { CreditCardItem, creditCardSelectedState, isLoadingCreditCardsState, isOpenAddOtherCreditCardState, isOpenCreditCardsState, isOpenTicketViewState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype PayCreditCardsProps = {\n payWithCreditCard: PayWithCreditCard\n}\n\nexport const PayCreditCards: React.FC = ({ payWithCreditCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { formatCurrency } = useFormat()\n const [isPaymentConfirmation, setPaymentConfirmation] = useState(false)\n const [isLoading, setLoading] = useRecoilState(isLoadingCreditCardsState)\n const creditCardSelected = useRecoilValue(creditCardSelectedState)\n const setOpen = useSetRecoilState(isOpenCreditCardsState)\n const setOpenOtherCreditCard = useSetRecoilState(isOpenAddOtherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const ticketView = useRecoilValue(ticketViewState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n const handlePay = (): void => {\n setLoading(true)\n\n payWithCreditCard\n .pay({ duplicata: ticketView, cartao: creditCardSelected })\n .then(notify.info)\n .catch(handlerError)\n .finally(() => {\n setOpenTicketView(false)\n setLoading(false)\n handleClose()\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setPaymentConfirmation(false)\n }\n\n const handleOpenOtherCreditCard = (): void => {\n setOpenTicketView(false)\n setOpenOtherCreditCard(true)\n setPaymentConfirmation(false)\n }\n\n return (\n isLoading\n ? \n : \n 0\n ? 'Selecione o cartão de crédito'\n : 'Nenhum cartão cadastrado'\n }\n color={theme.colors.info}\n variant='outlined'\n containerStyle={{ marginBottom: 8 }}\n />\n {isPaymentConfirmation\n ? \n Confirma os dados para pagamento com o cartão final {creditCardSelected?.numero?.slice(-4)} no valor de {formatCurrency(ticketView.valorAtualizado)}?\n \n \n : \n {client.listaCartoes?.map(creditCard =>\n \n )}\n \n }\n\n \n {client.listaCartoes.length > 0 &&\n isPaymentConfirmation ? handlePay() : setPaymentConfirmation(true)}\n />\n }\n {!isPaymentConfirmation &&\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { CreditCardModel } from '@/domain/models'\n\nexport const isLoadingCreditCardsState = atom({\n key: 'isLoadingCreditCardsState',\n default: false\n})\n\nexport const isOpenCreditCardsState = atom({\n key: 'isOpenCreditCardsState',\n default: false\n})\n\nexport const creditCardsState = atom({\n key: 'creditCardsState',\n default: [] as CreditCardModel[]\n})\n\nexport const creditCardSelectedState = atom({\n key: 'creditCardSelectedState',\n default: null as unknown as CreditCardModel\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenFinancialFiltersState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const { isMobile } = useMediaQueries()\n const setOpen = useSetRecoilState(isOpenFinancialFiltersState)\n const filters = useRecoilValue(ticketsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n const situation = {\n 'Em Aberto': isMobile ? 'Em Aberto' : 'Somente em Aberto',\n Todas: isMobile ? 'Todos' : 'Todos Status',\n Pagas: isMobile ? 'Pagas' : 'Somente Pagas'\n }[filters.situacao]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n content: {\n alignItems: 'center',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetTicketPix } from '@/domain/usecases'\nimport { TicketModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, ModalBase, Clipboard, QRCodeSvg, Loading, Chip, HStack, VStack, TextInput } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingTicketPixState, isOpenTicketPixState, selectedTicketPixState } 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 = (props) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler(() => handleClose())\n const [selectedTicketPix, setCurrentTicketPix] = useRecoilState(selectedTicketPixState)\n const [isOpen, setOpen] = useRecoilState(isOpenTicketPixState)\n const [isLoading, setLoading] = useRecoilState(isLoadingTicketPixState)\n const [pix, setPix] = useState('')\n\n const [ticket, setTicket] = useState()\n const isHttps = window.location.protocol === 'https:'\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n if (selectedTicketPix?.codInterno) {\n handleGetPix()\n setTicket(selectedTicketPix)\n } else {\n setPix('')\n }\n }, [selectedTicketPix])\n\n const handleGetPix = (): void => {\n setLoading(true)\n\n const params: GetTicketPix.Params = {\n codInternoDuplicata: selectedTicketPix.codInterno,\n codigoBanco: selectedTicketPix.codBanco,\n pixUrl: selectedTicketPix.pixUrl\n }\n\n props.getTicketPix\n .getPix(params)\n .then(pix => setPix(pix))\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleCopyPix = (): void => {\n if (isHttps) {\n notify.show('O pix foi copiado para área de transferência')\n Clipboard.setStringAsync(pix)\n handleClose()\n } else {\n const input = document.getElementById('pix-code')\n input?.focus()\n }\n }\n\n const handleClose = useCallback((): void => {\n setOpen(false)\n setCurrentTicketPix(null as unknown as TicketModel)\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 && props.dateAdapter.format(ticket?.vencimento)}\n \n \n Valor {ticket?.valorDuplicata && formatCurrency(ticket?.valorDuplicata)}\n \n \n Valor Atualizado {ticket?.valorAtualizado && formatCurrency(ticket?.valorAtualizado)}\n \n \n {!!pix &&\n <>\n \n \n \n }\n \n \n : false}\n />\n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TicketModel } from '@/domain/models'\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 selectedTicketPixState = atom({\n key: 'selectedTicketPixState',\n default: null as unknown as TicketModel\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Divider, DatePicker, InputField, SideFilter, Snackbar, Button } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { SelectStatusTicketFilter, invalidDateState, 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 [invalidDate, setInvalidDate] = useRecoilState(invalidDateState)\n const errorHandler = useErrorHandler()\n const setTickets = useSetRecoilState(ticketsState)\n const { isMobile } = useMediaQueries()\n const theme = useTheme()\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: returnInitialDateFilter(),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }, [])\n\n const returnInitialDateFilter = () => {\n const defaultInitialdate = dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO)\n const formattedDefaultInitialdate = dateAdapter.format(defaultInitialdate, 'YYYY-MM-DD')\n\n if (client.limiteDataRetroativa) {\n const limitDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isBefore = dateAdapter.isBefore({ startDate: defaultInitialdate, endDate: limitDate })\n return isBefore ? dateAdapter.format(limitDate, 'YYYY-MM-DD') : formattedDefaultInitialdate\n }\n\n return formattedDefaultInitialdate\n }\n\n const handleGetTickets = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paramsGetTicket)\n .then(setTickets)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n\n if (client.limiteDataRetroativa && field === 'dataInicio') {\n const filterParsedDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isValid = dateAdapter.isBefore({ startDate: date, endDate: filterParsedDate })\n\n if (isValid) return setInvalidDate(true)\n\n setInvalidDate(false)\n }\n\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 => {\n setInvalidDate(false)\n setOpen(false)\n }\n\n const closeLimitDateAlert = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setInvalidDate(false)\n };\n\n return (\n \n \n \n }\n style={{\n backgroundColor: theme.colors.error,\n width: isMobile ? '100%' : '500px',\n display: invalidDate ? 'flex' : 'none'\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\nexport const invalidDateState = atom({\n key: 'invalidDateState',\n default: false\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, selectedTicketPixState, 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(selectedTicketPixState)\n\n const client = getClient()\n\n const handleCopyBarCode = (): void => {\n Clipboard.setStringAsync(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 = (ticket: TicketModel): void => {\n handleClose()\n setOpenPix(true)\n if (ticket) {\n setCurrentTicketPix(ticket)\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) || ticketView.pixUrl) &&\n }\n onPress={() => handleOpenPix(ticketView)}\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 Faturada\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, useSetRecoilState } 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, CardTicket, ModalTicketPix, isOpenFinancialFiltersState, FiltersChipPanel, isLoadingFinancialState, TicketView, AddOtherCreditCard, ticketsFiltersState } 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, setTicketsFilters] = useRecoilState(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 dataInicial = filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : returnInitialDateFilter()\n\n const dataFinal = filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n\n setTicketsFilters(prev => ({ ...prev, dataInicio: dataInicial, dataFim: dataFinal }))\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial,\n dataFinal\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const returnInitialDateFilter = () => {\n const defaultInitialdate = dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO)\n const formattedDefaultInitialdate = dateAdapter.format(defaultInitialdate, 'YYYY-MM-DD')\n\n if (client.limiteDataRetroativa) {\n const limitDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isBefore = dateAdapter.isBefore({ startDate: defaultInitialdate, endDate: limitDate })\n return isBefore ? dateAdapter.format(limitDate, 'YYYY-MM-DD') : formattedDefaultInitialdate\n }\n\n return formattedDefaultInitialdate\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 : returnInitialDateFilter(),\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 React, { useEffect } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\nimport { logoEmpresaState } from '@/presentation/components'\n\ntype LogoThemeProps = {\n height?: number\n width?: number\n minHeight?: number\n}\n\nexport const LogoTheme: React.FC = (props) => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const themeClient = getThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useRecoilState(logoEmpresaState)\n const isSvg = !logoEmpresa\n\n useEffect(() => {\n if ((themeClient.imageLogo) && (!__DEV__) && (logoEmpresa !== themeClient.imageLogo)) {\n void getImage(themeClient.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n }\n }, [themeClient.imageLogo])\n\n return (\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 { atom } from 'recoil'\nexport * from './ModalUserSelect/atom'\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 document: '',\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 { useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { isLoadingState, isOpenForgotPasswordState, loginState } from '../atoms'\n\ntype ModalForgotPasswordProps = {\n forgotPassword: ForgotPassword\n}\n\nexport const ModalForgotPassword: React.FC = (props) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatDocument } = useFormat()\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 handleOnRequestAccess = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const params: ForgotPassword.Params = {\n email: state.recoveryEmail,\n documento: state.document\n }\n\n props.forgotPassword\n .requestAccess(params)\n .then(message => {\n notify.show(message)\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n\n handleCloseModal()\n }\n\n const handleCloseModal = (): void => setOpen(false)\n\n return (\n \n \n Recuperar senha\n\n {\n setState(currentValues => ({\n ...currentValues,\n document: formatDocument(text)\n }))\n }}\n value={state.document}\n />\n\n { setState(currentValues => ({ ...currentValues, 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 { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center'\n },\n loginContent: {\n width: '100%',\n position: 'absolute',\n paddingHorizontal: 40,\n paddingVertical: 20,\n maxWidth: 428,\n justifyContent: 'space-between',\n alignItems: 'center',\n borderWidth: 1,\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n }\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n input: {\n width: '100%',\n outlineWidth: 0,\n backgroundColor: 'transparent'\n },\n form: {\n width: '100%',\n gap: 16\n },\n checkboxArea: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: 32,\n color: '#FFF',\n height: 'min-content'\n },\n buttonArea: {\n width: '100%',\n gap: 16\n },\n snackbar: {\n width: 428,\n maxWidth: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n bottom: 32\n },\n center: {\n textAlign: 'center'\n },\n footer: {\n fontSize: 10,\n position: 'absolute',\n width: '100%',\n bottom: 8,\n left: 0,\n textAlign: 'center'\n }\n})\n","import React, { useEffect, useState } from 'react'\nimport { GestureResponderEvent, SafeAreaView, TextInput as NativeTextInput } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { Checkbox, TextInput } from 'react-native-paper'\nimport { Authentication, ForgotPassword, GetUserByDocument } from '@/domain/usecases'\nimport { LogoTheme } from '@/presentation/components/LogoTheme'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { KEY_ACCESS_PASSWORD, useAuth, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { BackgroundTheme, Box, Button, Divider, HStack, NavigationPagesProps, SocialMidias, Text, VStack, isOpenUpdatePasswordState, localStorageState, socialMediaState } from '@/presentation/components'\nimport { ModalForgotPassword, ModalUserSelect } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\nimport * as State from '@/presentation/pages/Login/components/atoms'\nimport * as GeneralState from '@/presentation/components/Atoms'\nimport { version } from '../../../../package.json'\n\ntype LoginAuthenticateProps = {\n username: string\n password: string\n}\n\ntype LoginProps = NavigationPagesProps & {\n getUser: GetUserByDocument\n authentication: Authentication\n forgotPassword: ForgotPassword\n}\n\nexport const Login: React.FC = (props) => {\n const theme = useTheme()\n const notify = useNotify()\n const { isAdmin, login, getSaveUser, saveUser, isPasswordSecure } = useAuth()\n const { getThemeClient } = useThemeClient()\n const [state, setState] = useRecoilState(State.loginState)\n const [isLoading, setLoading] = useRecoilState(State.isLoadingState)\n const [isSelected, setSelection] = useState(false)\n const setModalUserSelect = useSetRecoilState(State.usersSelectState)\n const setOpenUserSelect = useSetRecoilState(State.isOpenUserSelect)\n const setOpenForgotPassword = useSetRecoilState(State.isOpenForgotPasswordState)\n const setOpenUpdatePassword = useSetRecoilState(isOpenUpdatePasswordState)\n const prospectConfigs = useRecoilValue(GeneralState.prospectConfigsState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n const prospectInterestArea = useRecoilValue(GeneralState.prospectInterestAreaState)\n const socialMedia = useRecoilValue(socialMediaState)\n const reset = useResetRecoilState(State.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 handleCheckSecurityPassword = (): void => {\n if (!isPasswordSecure(state.password) && !isAdmin()) {\n localStorageAdapter.set(KEY_ACCESS_PASSWORD, 'insecure_password')\n setOpenUpdatePassword(!isPasswordSecure(state.password))\n reset()\n }\n }\n\n const handleSubmit = (event?: GestureResponderEvent): void => {\n event?.preventDefault()\n\n if (!state.username) {\n handleError(new Error('O usuário deve ser informado'))\n return\n }\n\n if (!state.password) {\n handleError(new Error('A senha deve ser informada'))\n return\n }\n\n const dataAuth: Authentication.Params = {\n username: state.username,\n password: state.password\n }\n\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 const loginWithCode = (params: Authentication.Params): void => {\n setLoading(true)\n props.authentication\n .auth(params)\n .then(async authToken => {\n login(authToken)\n reset()\n if (params.username.toUpperCase() !== 'ADMIN' || !params.username.endsWith('@insidesistemas.com.br')) {\n handleCheckSecurityPassword()\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: Authentication.Params): void => {\n setLoading(true)\n props.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 handleCheckSecurityPassword()\n } else {\n setOpenUserSelect(true)\n setModalUserSelect(clients)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (savedUser.saveUsername) {\n setState(currentState => ({ ...currentState, username: savedUser.username }))\n setSelection(true)\n }\n }, [])\n\n return (\n \n \n\n \n \n \n Portal do Cliente\n handleChangeInput('username', text)}\n value={state.username}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n handleChangeInput('password', text)}\n value={state.password}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n \n \n Salvar usuário\n \n setSelection(!isSelected)}\n />\n \n \n \n setOpenForgotPassword(true)}\n >\n Esqueci minha senha\n \n \n \n \n \n {prospectConfigs?.ativo && prospectInterestArea?.length > 0 &&\n \n \n { props.navigation.navigate(NavigationRoute.Prospect) }}\n >\n Ainda não é cliente? Cadastre-se aqui!\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 } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\n\nexport const makeLoginFactory = (props: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderModel } from '@/domain/models'\n\nexport const isLoadingServiceOrdersState = atom({\n key: 'isLoadingServiceOrdersState',\n default: true\n})\n\nexport const serviceOrdersState = atom({\n key: 'serviceOrdersState',\n default: [] as ServiceOrderModel[]\n})\n\nexport const serviceOrdersConfigsState = atom({\n key: 'serviceOrdersConfigsState',\n default: {\n bloqueiaAberturaLimite: false,\n portalExibeMensagem: false,\n exibirOsFechadas: false,\n portalMensagem: ''\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as CircleIcon } from '@expo/vector-icons/FontAwesome'\nexport { default as MoreIcon } from '@expo/vector-icons/Feather'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n maxWidth: 600,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box, Chip, Divider, HStack, Text, VStack } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, CircleIcon, MarkerIcon } from './styles'\n\ntype CardOsProps = {\n serviceOrder: ServiceOrderModel\n dateAdapter: DateAdapter\n}\n\nexport const CardOs: React.FC = ({\n serviceOrder,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { getAddress } = useAuth()\n const { removeNewLines } = useFormat()\n const { isMobile } = useMediaQueries()\n const setOsView = useSetRecoilState(serviceOrderViewState)\n\n const address = getAddress(serviceOrder.codEndereco)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && { flex: 1 }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n const makeHeader = (): JSX.Element => {\n return (\n \n \n {serviceOrder.solicitante\n ? serviceOrder.solicitante\n : 'Solicitante não informado'\n }\n \n \n Nº {serviceOrder.ordem.toString().padStart(6, '0')}\n \n \n \n )\n }\n\n return (\n \n {makeHeader()}\n \n \n \n {'Data Abertura: '}\n \n {dateAdapter.format(serviceOrder.dataAbertura, 'DD/MM/yyyy HH:mm')}\n \n \n {!!serviceOrder.dataFechamento &&\n serviceOrder.status !== ServiceOrderStatus.Aberta &&\n \n {'Data Fechamento: '}\n \n {dateAdapter.format(serviceOrder.dataFechamento, 'DD/MM/yyyy HH:mm')}\n \n \n }\n {serviceOrder.observacoes &&\n \n {'Observações: '}\n \n {removeNewLines(serviceOrder.observacoes)\n .substring(0, GetServiceOrders.RN.OBSERVATION_MAX_LENGTH)\n }\n \n \n }\n \n {address &&\n \n {`${address.endereco.toUpperCase()}, ${address.numero.toUpperCase()} - ${address.bairro.toUpperCase()}`}\n \n }\n \n \n \n \n {'Status: '}\n \n \n setOsView(currentState => ({ ...currentState, currentOs: serviceOrder }))}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useAuth, 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 const { getClient } = useAuth()\n\n const { codTecnico, osSemTecnico } = getClient()\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 disabled={codTecnico === 0 && !osSemTecnico }\n title='Abrir Ordem de Serviço'\n testID='cadastrar-os'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={handleAddNewOs}\n />\n }\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusOsFilter, serviceOrdersFiltersState, serviceOrdersConfigsState, isLoadingServiceOrdersState, isOpenServiceOrdersFiltersState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport function SideFilters ({ dateAdapter, getServiceOrders }: SideFiltersProps): JSX.Element {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const [isOpen, setOpen] = useRecoilState(isOpenServiceOrdersFiltersState)\n const setServiceOrders = useSetRecoilState(serviceOrdersState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }, [])\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n \n \n \n {serviceOrdersConfigs.exibirOsFechadas &&\n <>\n \n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenServiceOrdersFiltersState = atom({\n key: 'isOpenServiceOrdersFiltersState',\n default: false\n})\n\nexport const serviceOrdersFiltersState = atom({\n key: 'serviceOrdersFiltersState',\n default: {\n situacao: 'Em Aberto' as 'Em Aberto' | 'Fechadas' | 'Todas',\n dataInicio: '',\n dataFim: ''\n }\n})\n","import * as React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { serviceOrdersFiltersState, statusOSsState } from '@/presentation/pages/ServiceOrders/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusOsFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const statusOSs = useRecoilValue(statusOSsState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Em Aberto' | 'Fechadas' | 'Todas'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusOSs.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Em Aberto' | 'Fechadas' | 'Todas')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusOSsState = atom({\n key: 'selectStatusOSsState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Fechadas', value: 'Fechadas' },\n { _id: 'Em Aberto', value: 'Em Aberto' }\n ]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ClientAddress, ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, TextInput, ModalBase, HStack, Loading, Select } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { addNewOsState, isLoadingAddNewOS, isOpenAddNewOS, isOpenAddressNewOSState, serviceOrdersConfigsState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype AddNewOsProps = {\n solicitante: string\n observacoes: string\n}\n\ntype ModalAddNewOsProps = {\n addNewOs: AddNewOs\n dateAdapter: DateAdapter\n}\n\nexport const ModalAddNewOs: React.FC = ({ addNewOs, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [addNewOS, setAddNewOs] = useRecoilState(addNewOsState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [isOpen, setOpen] = useRecoilState(isOpenAddNewOS)\n const serviceOrdersConfigs = useRecoilValue(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAddNewOS)\n const [isOpenAddressNewOS, setOpenAddressNewOS] = useRecoilState(isOpenAddressNewOSState)\n const resetAddNewOs = useResetRecoilState(addNewOsState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof AddNewOsProps, value: string): void => {\n setAddNewOs(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleCreateOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const addNewOsParams: AddNewOsParams = {\n cliente: client.codCliente,\n solicitante: addNewOS.solicitante,\n observacoes: addNewOS.observacoes,\n codEndereco: addNewOS.codEndereco,\n empresa: client.empresa,\n enviaListaChave: client.enviaListaChave,\n modalidade: client.modalidade,\n codigoUnidade: client.unidade\n }\n\n addNewOs\n .add(addNewOsParams)\n .then(codigo => {\n if (codigo) {\n successNewOs(addNewOsParams, codigo)\n setOpen(false)\n resetAddNewOs()\n } else {\n throw new Error('Não foi possível gravar a OS!')\n }\n })\n .catch(handleError)\n .finally(handleClose)\n }\n\n const successNewOs = (createSacParams: AddNewOsParams, codigo: number): void => {\n const listNewServiceOrders = [\n {\n ...createSacParams as unknown as ServiceOrderModel,\n ordem: codigo,\n status: ServiceOrderStatus.Aberta,\n dataAbertura: dateAdapter.today().toString()\n },\n ...serviceOrders\n ]\n setServiceOrders(listNewServiceOrders)\n notify.success('Ordem de serviço gravada com sucesso')\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setLoading(false)\n resetAddNewOs()\n }\n\n const formatAddress = (addressCode: number): string | undefined => {\n const address = client.enderecoAlternativo?.find(endereco => endereco.codInterno === addressCode)\n return address?.endereco && `${address.endereco}, ${address.numero} - ${address.bairro}`\n }\n\n return (\n \n {isLoading\n ? \n : \n Criar nova OS\n {serviceOrdersConfigs.portalExibeMensagem &&\n serviceOrdersConfigs.portalMensagem &&\n \n \n {serviceOrdersConfigs.portalMensagem}\n \n }\n\n handleChangeInput('solicitante', text)}\n value={addNewOS.solicitante}\n maxLength={30}\n />\n\n {!!client.enderecoAlternativo.length &&\n setOpenAddressNewOS(true)}\n style={{ minWidth: '100%' }}\n />\n }\n\n handleChangeInput('observacoes', text)}\n value={addNewOS.observacoes}\n multiline\n numberOfLines={5}\n />\n\n \n \n \n \n\n {!!client.enderecoAlternativo.length &&\n setOpenAddressNewOS(false)}\n items={client.enderecoAlternativo?.map(endereco => ({\n id: endereco.codInterno,\n descricao: formatAddress(endereco.codInterno) ?? '',\n data: endereco,\n isSelected: endereco.codInterno === addNewOS.codEndereco\n }))}\n onSelect={(addressCode, _) => {\n setAddNewOs(currentState => ({ ...currentState, codEndereco: addressCode }))\n }}\n />\n }\n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingAddNewOS = atom({\n key: 'isLoadingAddNewOS',\n default: false\n})\n\nexport const isOpenAddNewOS = atom({\n key: 'isOpenAddNewOS',\n default: false\n})\n\nexport const isOpenAddressNewOSState = atom({\n key: 'isOpenAddressNewOS',\n default: false\n})\n\nexport const addNewOsState = atom({\n key: 'addNewOs',\n default: {\n solicitante: '',\n observacoes: '',\n codEndereco: 0\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { GetOsAttendance } from '@/domain/usecases'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, Chip, HStack, Divider, VStack, Loading } from '@/presentation/components'\nimport { OsAttendandes, isLoadingOsViewState, serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, OSIcon, MarkerIcon } from './styles'\n\ntype ModalServiceOrderViewProps = {\n getOsAttendance: GetOsAttendance\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\n\nexport const ModalOsView: React.FC = ({\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getAddress } = useAuth()\n const notify = useNotify()\n const [serviceOrder, setState] = useRecoilState(serviceOrderViewState)\n const [isLoading, setLoading] = useRecoilState(isLoadingOsViewState)\n\n const address = getAddress(serviceOrder.currentOs.codEndereco)\n\n useEffect(() => {\n if (serviceOrder.currentOs?.codInterno) {\n setLoading(true)\n\n getOsAttendance\n .getAttendences({ codigoOs: serviceOrder.currentOs.codInterno })\n .then(attendances => setState(currentState => ({ ...currentState, attendances })))\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n }, [])\n\n const handleClose = (): void => {\n setState(currentState => ({\n ...currentState,\n currentOs: null as unknown as ServiceOrderModel,\n attendances: []\n }))\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n return (\n \n \n \n \n \n \n \n \n Solicitante\n {serviceOrder.currentOs?.solicitante.toUpperCase()}\n \n \n \n Status\n \n \n \n Data Abertura\n \n {dateAdapter.format(serviceOrder.currentOs?.dataAbertura, 'DD/MM/yyyy HH:mm')}\n \n \n \n \n \n Observações\n \n {serviceOrder.currentOs?.observacoes}\n \n \n \n \n \n \n {address?.identificacao.toUpperCase()}\n \n {!!address &&\n (isMobile\n ? `${address.endereco}, ${address.numero} - ${address.bairro}`\n : `${address.endereco}, ${address.numero} - ${address.bairro} - ${address.cidade}/${address.estado} - ${address.cep}`\n )}\n \n \n \n \n \n {!isMobile && (\n isLoading ? : \n )}\n \n \n \n \n \n )\n}\n","import { OsAttendanceModel, ServiceOrderModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingOsViewState = atom({\n key: 'isLoadingOsViewState',\n default: false\n})\n\nexport const serviceOrderViewState = atom({\n key: 'serviceOrderViewState',\n default: {\n currentOs: null as unknown as ServiceOrderModel,\n attendances: [] as OsAttendanceModel[]\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n attendancesContainer: {\n flexDirection: 'row',\n marginTop: 16,\n maxHeight: '30vh'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n },\n titleAttendances: {\n fontWeight: '700',\n marginBottom: 8,\n fontSize: 12\n },\n attendancesText: {\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { useFormat } from '@/presentation/hooks'\nimport { VStack, HStack, Box, Text, Divider } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype OsAttendandesProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsAttendandes: React.FC = ({ dateAdapter }) => {\n const serviceOrder = useRecoilValue(serviceOrderViewState)\n const { removeNewLines } = useFormat()\n\n return (\n \n {!!serviceOrder.attendances.length && Atendimentos}\n {serviceOrder.attendances?.map((attendance, index) => (\n \n \n {'Técnico: '}\n {attendance.nomeTecnico}\n \n \n \n {'Início: '}\n {dateAdapter.format(attendance.dataInicio, 'DD/MM/yyyy HH:mm')}\n \n \n {'Término: '}\n {dateAdapter.format(attendance.dataTermino, 'DD/MM/yyyy HH:mm')}\n \n \n \n Observações\n {removeNewLines(attendance.observacoes)}\n \n \n \n ))}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, GetOsAttendance, GetServiceOrders } from '@/domain/usecases'\nimport { ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { serviceOrdersConfigsState, SideFilters, ModalAddNewOs, ModalOsView, serviceOrderViewState, serviceOrdersFiltersState, CardOs, isLoadingServiceOrdersState, serviceOrdersState, isOpenServiceOrdersFiltersState, FiltersChipPanel, isOpenAddNewOS } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype ServiceOrdersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n addNewOs: AddNewOs\n getOsAttendance: GetOsAttendance\n}\n\nexport const ServiceOrders: React.FC = ({\n getServiceOrders,\n addNewOs,\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { currentOs } = useRecoilValue(serviceOrderViewState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const setOpenAddNewOs = useSetRecoilState(isOpenAddNewOS)\n const filters = useRecoilValue(serviceOrdersFiltersState)\n const setOpen = useSetRecoilState(isOpenServiceOrdersFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleAddNewOs = useCallback((): void => {\n if (serviceOrdersConfigs.bloqueiaAberturaLimite) {\n const existWithOpenStatus = serviceOrders?.some(os => os.status === ServiceOrderStatus.Aberta)\n if (existWithOpenStatus) {\n notify.show('Já existe uma Ordem de Serviço aberta para você, não é possível abrir outra no momento.', { variant: 'error' })\n return\n }\n }\n\n setOpenAddNewOs(true)\n }, [serviceOrdersConfigs.bloqueiaAberturaLimite])\n\n return (\n \n \n \n \n }\n openFilters={() => setOpen(true)}\n />\n \n \n {serviceOrders?.map((serviceOrder, index) =>\n \n )}\n \n \n \n {isMobile &&\n \n } color={themeClient.mainColor}\n />\n \n }\n {!isLoading && }\n {!!currentOs && }\n \n )\n}\n","import React from 'react'\nimport { ServiceOrders } from '@/presentation/pages/ServiceOrders'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddNewOs, makeGetOsAttendance, makeGetServiceOrders } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeServiceOrdersFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingHomeState',\n default: false\n})\n","import React, { useMemo } from 'react'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { Badge, Box, HStack, Text, notificationsState } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\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 const localNotifications = useRecoilValue(notificationsState)\n\n const iconPage = useMemo(() => ({\n boleto: ,\n os: ,\n sac: ,\n notaFiscal: ,\n monitoramento: ,\n rastreamento: ,\n cartao: ,\n aceiteDigital: ,\n viagem: ,\n telefonesUteis: ,\n documentosUteis: ,\n contrato: \n }[page]), [page])\n\n const iconButton = (): JSX.Element =>\n \n \n {iconPage}\n \n \n\n const title = {\n boleto: 'Financeiro',\n os: isMobile ? 'Ordens' : 'Ordens de Serviço',\n sac: 'SAC',\n notaFiscal: isMobile ? 'Notas' : 'Notas Fiscais',\n monitoramento: 'Monitoramento',\n rastreamento: 'Rastreamento',\n cartao: 'Cartão',\n aceiteDigital: isMobile ? 'Aceite' : 'Aceite Digital',\n viagem: isMobile ? 'Viagem' : 'Aviso de Viagem',\n telefonesUteis: isMobile ? 'Telefones' : 'Telefones Úteis',\n documentosUteis: isMobile ? 'Arquivos' : 'Arquivos Úteis',\n contrato: isMobile ? 'Contrato' : 'Meu Contrato'\n }[page]\n\n const route = {\n boleto: NavigationRoute.Financial,\n os: NavigationRoute.ServiceOrders,\n sac: NavigationRoute.SAC,\n notaFiscal: NavigationRoute.Invoices,\n monitoramento: NavigationRoute.Monitoring,\n rastreamento: NavigationRoute.Track,\n cartao: NavigationRoute.CreditCard,\n aceiteDigital: NavigationRoute.DigitalAccepts,\n viagem: NavigationRoute.TravelAlert,\n telefonesUteis: 'Telefones Úteis',\n documentosUteis: 'Arquivos Úteis',\n contrato: NavigationRoute.Contract\n }[page]\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile\n ? {\n maxHeight: 180,\n maxWidth: 180,\n minHeight: 140\n }\n : {\n flex: 0.5,\n minHeight: 120\n }),\n minWidth: isMobile ? (width - 56) / 2 : '30%',\n backgroundColor: colorsPage[page]\n }\n\n return (\n navigation.navigate(route)}\n testID={`home-button-${title}`}\n >\n \n {iconButton()}\n notification.screen === route).length}\n style={{ marginRight: 18, paddingHorizontal: 12, height: 32, borderRadius: 50 }}\n color={theme.colors.background}\n labelStyle={{ color: colorsPage[page], fontWeight: 'bold' }}\n />\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, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { GetClientByCode, MetricsLogin, SaveNotificationToken } from '@/domain/usecases'\nimport { KEY_ACCESS_PASSWORD, useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { isLoadingState, Menu } from '@/presentation/pages/Home/components'\nimport { authenticationState, isOpenUpdatePasswordState, localStorageState, 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 { setClient, getCurrentClient } = useAuth()\n const setLoading = useSetRecoilState(isLoadingState)\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n const setOpenUpdatePassword = useSetRecoilState(isOpenUpdatePasswordState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n const handleError = useErrorHandler(console.error)\n\n const currentClient = getCurrentClient()\n\n useEffect(() => {\n setOpenUpdatePassword(!!localStorageAdapter.get(KEY_ACCESS_PASSWORD))\n\n return () => {\n setOpenUpdatePassword(false)\n }\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n const tokenCliente = localStorageAdapter.get(SaveNotificationToken.RN.LOCAL_STORAGE_TOKEN)\n\n setLoading(true)\n\n getClientByCode\n .getByCode({\n codigoCliente: +currentClient,\n tokenDispositivo: tokenCliente\n })\n .then(client => {\n setClient(client)\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 }, [getCurrentClient])\n )\n\n return (\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Home } from '@/presentation/pages/Home'\nimport { makeGetClientByCode, makeMetricsLogin } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeHomeFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { SaveCreditCard, GetCreditCard, GetCreditCardParams, SaveCreditCardParams } from '@/domain/usecases'\nimport { CardFlagsTypes, cardMaskByFlag } from '@/domain/models'\nimport { useAuth, useCreditCard, useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, creditCardState, CreditCard, isEditableState, isLoadingState, isOpenEditConfirmationState, ModalModalEditConfirmation } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\ntype CartaoProps = {\n getCard: GetCreditCard\n saveCard: SaveCreditCard\n}\n\nexport const Cartao: React.FC = ({ getCard, saveCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { getCreditCardType } = useCreditCard()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isEditable, setEditable] = useRecoilState(isEditableState)\n const setOpenEditConfirmation = useSetRecoilState(isOpenEditConfirmationState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n setEditable(false)\n\n const getCardParams: GetCreditCardParams = {\n codCliente: client.codCliente\n }\n\n getCard\n .getByClient(getCardParams)\n .then((card) => {\n if (card) {\n setCreditCard(card)\n setEditable(false)\n } else {\n setEditable(true)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const isValidDataCard = useCallback((): boolean => {\n if (\n !creditCard.nome ||\n !creditCard.numero ||\n !creditCard.expiracao ||\n creditCard.expiracao.length < 4 ||\n !creditCard.expiracao.includes('/') ||\n !creditCard.ccv ||\n creditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }, [creditCard])\n\n const handleSaveCreditCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const saveCardParams: SaveCreditCardParams = {\n codCliente: client.codCliente,\n email: client.email,\n unidade: client.unidade,\n type: getCreditCardType(creditCard.numero),\n mask: cardMaskByFlag[creditCard.type],\n ccv: creditCard.ccv,\n expiracao: creditCard.expiracao,\n nome: creditCard.nome,\n numero: creditCard.numero\n }\n\n if (isValidDataCard()) {\n setLoading(true)\n\n saveCard\n .save(saveCardParams)\n .then(notify.show)\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados do cartão devem ser informados'))\n }\n }\n\n const handleResetCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n {(isLoading || !isEditable) &&\n { setOpenEditConfirmation(true) }}\n />\n }\n {(!isLoading && isEditable) &&\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Cartao } from '@/presentation/pages/Cartao'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetCreditCard, makeSaveCreditCard } from '@/main/factories/usecases'\n\nexport const makeCardFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { AcceptDigitalModel } from '@/domain/models'\n\nexport const isLoadingAcceptDigitalState = atom({\n key: 'isLoadingAcceptDigitalState',\n default: true\n})\n\nexport const acceptDigitalState = atom({\n key: 'acceptDigitalState',\n default: [] as AcceptDigitalModel[]\n})\n\nexport const currentAcceptDigitalState = atom({\n key: 'currentAcceptDigitalState',\n default: -1\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 600,\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n gap: 8\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500'\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, Pressable } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { theme } from '@/presentation/styles'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Text, Chip, VStack, Clipboard, MenuActions, IconButton, Menu, Box, Divider, HStack } from '@/presentation/components'\nimport { currentAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype CardAcceptDigitalProps = {\n accept: AcceptDigitalModel\n dateAdapter: DateAdapter\n openUrlDocAccept: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const CardAcceptDigital: React.FC = ({\n accept,\n dateAdapter,\n openUrlDocAccept,\n openDocumentAccept\n}) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [currentAcceptDigital, setCurrentAcceptDigital] = useRecoilState(currentAcceptDigitalState)\n\n const isAuthorized = accept.statusAceite === 'Autorizado'\n\n const handleOpenUrlDocument = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const viewParams = {\n statusAceite: accept.statusAceite,\n urlAceite: accept.urlAceite\n }\n\n openUrlDocAccept\n .view(viewParams)\n .then(() => notify.show('O aceite digital foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleOpenDocumentAccept = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const openParams: OpenDocumentAcceptParams = {\n statusAceite: accept.statusAceite,\n codigoAceite: accept.idAceite\n }\n\n openDocumentAccept\n .open(openParams)\n .then(() => notify.show('O documento foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleCopyHash = (hash: string): void => {\n Clipboard.setStringAsync(hash)\n notify.show('Hash do Aceite Digital copiado com sucesso')\n }\n\n const handleOpenMenu = (idAceite: number): void => {\n setCurrentAcceptDigital(idAceite)\n }\n\n const handleCloseMenu = useCallback((): void => {\n setCurrentAcceptDigital(-1)\n }, [])\n\n const colorType = {\n Orçamento: theme.colors.primary,\n Contrato: theme.colors.info,\n Aditivo: theme.colors.pink,\n default: theme.colors.primary\n }[accept.tipoAceite]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const statusChipContainer = {\n ...styles,\n backgroundColor: !isAuthorized ? theme.colors.secondary : theme.colors.success\n }\n\n return (\n \n \n \n {accept.emailEnvio}\n \n = 0 && currentAcceptDigital === accept.idAceite}\n onDismiss={handleCloseMenu}\n anchor={\n handleOpenMenu(accept.idAceite)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }\n testID='aceite-digital-opcoes'\n />\n }>\n {isAuthorized &&\n }\n />\n }\n }\n />\n \n \n\n \n \n \n \n \n {'Tipo '}\n \n \n \n \n \n {'Status '}\n \n \n \n \n \n \n {'Envio: '}\n \n {dateAdapter.format(accept.dataEnvio, 'DD/MM/YYYY HH:mm:ss')}\n \n {\n accept.aceiteHashProcesso !== '' &&\n \n \n \n \n {'Hash: '}\n \n {accept.aceiteHashProcesso}\n \n handleCopyHash(accept.aceiteHashProcesso)} testID='copiar-hash'>\n \n \n \n }\n \n \n )\n}\n","import React from 'react'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { acceptDigitalFiltersState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n const filters = useRecoilValue(acceptDigitalFiltersState)\n\n const period = dateAdapter.format(filters.dtInicial, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dtFinal, 'DD/MM/YYYY')\n\n const situation = {\n Pendentes: 'Somente Pendentes',\n Autorizados: 'Somente Autorizados',\n Ambos: 'Todos'\n }[filters.status]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetDigitalAccepts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { SelectStatusAcceptFilter, acceptDigitalFiltersState, acceptDigitalState, isLoadingAcceptDigitalState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\n\ntype DateParams = {\n dtInicial: string\n dtFinal: string\n}\n\nexport type AcceptFilters = {\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n dtInicial: string\n dtFinal: string\n}\n\ntype SideFiltersProps = {\n getAcceptDigital: GetDigitalAccepts\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getAcceptDigital, dateAdapter }: SideFiltersProps) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenAcceptDigitalFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const setAccepts = useSetRecoilState(acceptDigitalState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(filters.dtInicial, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dtFinal, 'YYYY-MM-DD'),\n status: filters.status\n }\n\n setLoading(true)\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handlerError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dtInicial', date ?? dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dtFinal', date ?? dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { GetDigitalAccepts } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenAcceptDigitalFiltersState = atom({\n key: 'isOpenAcceptDigitalFiltersState',\n default: false\n})\n\nexport const acceptDigitalFiltersState = atom({\n key: 'filtersAcceptDigital',\n default: {\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: '',\n dtFinal: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { acceptDigitalFiltersState, statusAcceptState } from '@/presentation/pages/AceiteDigital/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusAcceptFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const statusAccept = useRecoilValue(statusAcceptState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Ambos' | 'Autorizados' | 'Pendentes'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, status: selectedStatus }))\n }\n\n return (\n <>\n {\n statusAccept.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Ambos' | 'Autorizados' | 'Pendentes')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusAcceptState = atom({\n key: 'selectStatusAcceptState',\n default: [\n { _id: 'Ambos', value: 'Ambos' },\n { _id: 'Autorizados', value: 'Autorizados' },\n { _id: 'Pendentes', value: 'Pendentes' }\n ]\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetDigitalAccepts, OpenDocumentAccept, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { SideFilters, acceptDigitalState, CardAcceptDigital, FiltersChipPanel, isOpenAcceptDigitalFiltersState, isLoadingAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype AcceptDigitalProps = {\n dateAdapter: DateAdapter\n getAcceptDigital: GetDigitalAccepts\n getDocAcceptDigital: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const AcceptDigital: React.FC = ({\n dateAdapter,\n getAcceptDigital,\n openDocumentAccept,\n getDocAcceptDigital\n}: AcceptDigitalProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [accepts, setAccepts] = useRecoilState(acceptDigitalState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD'),\n status: GetDigitalAccepts.RN.DEFAULT_STATUS\n }\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, []))\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n \n }\n text='Aceite Digital'\n openFilters={handleOnFilter}\n />\n \n \n {accepts?.map(accept => (\n \n ))}\n \n \n \n \n )\n}\n","import React from 'react'\nimport { AcceptDigital } from '@/presentation/pages/AceiteDigital'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetAcceptDigital, makeOpenDocumentAcceptFactory, makeOpenUrlDocAcceptFactory } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeAcceptDigitalFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { NFModel } from '@/domain/models'\n\nexport const isLoadingNfState = atom({\n key: 'isLoadingNfState',\n default: true\n})\n\nexport const isLoadingOpenNfState = atom({\n key: 'isLoadingOpenNfState',\n default: false\n})\n\nexport const nfsConfigState = atom({\n key: 'nfsConfigState',\n default: {\n ocultaInfos: false,\n ocultaLink: false\n }\n})\n\nexport const nfsState = atom({\n key: 'nfsState',\n default: [] as NFModel[]\n})\n\nexport const nfState = atom({\n key: 'nfState',\n default: [] as NFModel[]\n})\n\nexport const leaseReceiptState = atom({\n key: 'leaseReceiptState',\n default: [] as NFModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n bold: {\n fontWeight: '500'\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 iconButton: {\n width: 32,\n height: 32\n },\n buttons: {\n display: 'flex',\n flexDirection: 'row'\n }\n})\n","import React, { useCallback, useState } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { ActivityIndicator, Box, CardBase, dateAdapterAtom, IconButton, Text } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { isLoadingOpenNfState, nfsConfigState } from '../atom'\nimport { styles } from './styles'\n\ntype CardNfseProps = {\n nfse: NFModel\n openNfse: OpenNfse\n index: number\n}\n\nexport const CardNfse: React.FC = ({ nfse, openNfse, index }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const nfsConfigs = useRecoilValue(nfsConfigState)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [isLoadingOpenNfse, setLoadingOpenNfse] = useRecoilState(isLoadingOpenNfState)\n const handleError = useErrorHandler()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenNfse = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoadingOpenNfse(true)\n const openNfseParams: OpenNfseParams = {\n codEmpresa: nf.empresa,\n codUnidade: nf.unidade,\n numeroRPS: nf.notaNumero,\n serieRps: nf.notaSerie,\n linkAutenticidade: nf.linkAutenticidade,\n utilizarDevExpress: nf.utilizarDevExpress\n }\n\n openNfse\n .open(openNfseParams)\n .then(() => notify.show(`A Nfse ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoadingOpenNfse(false))\n }, [])\n\n return (\n \n \n {nfse.notaNumeroNFSE}/{nfse.notaSerie}\n {!isLoadingOpenNfse &&\n \n {((nfse.linkAutenticidade || nfse.utilizarDevExpress) && !nfsConfigs.ocultaLink) &&\n handleOpenNfse(event, nfse)}\n icon={props => }\n />\n }\n {nfse.linkConsultaNotaPortal &&\n window.open(nfse.linkConsultaNotaPortal, '_blank')}\n icon={props => }\n />\n }\n \n }\n \n {(isLoadingOpenNfse && currentIndex === index)\n ? \n : <>\n Valor: {formatCurrency(nfse.notaValor)}\n Emissão: {dateAdapter.format(dateAdapter.parse(nfse.notaData), 'DD/MM/YYYY')}\n \n }\n \n )\n}\n","import React from 'react'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenNfsFiltersState, nfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenNfsFiltersState)\n const filters = useRecoilValue(nfsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n return (\n \n setOpen(true)}\n />\n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n ...layoutStyles.pageContent,\n marginVertical: 0,\n marginHorizontal: 'auto'\n },\n cardArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n bold: {\n fontWeight: '600'\n },\n title: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n emptyNf: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n gap: 16\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, PageHeader, CardList, CardBase } from '@/presentation/components'\nimport { FiltersChipPanel, isLoadingNfState, isOpenNfsFiltersState, leaseReceiptState } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype LeaseReceiptProps = {\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const LeaseReceipt: React.FC = ({ openLeaseReceipt, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const handleError = useErrorHandler()\n const leaseReceipts = useRecoilValue(leaseReceiptState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenLeaseReceipt = useCallback((event: GestureResponderEvent, recibo: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openLeaseReceiptParams: OpenLeaseReceiptParams = {\n codigoRecibo: recibo.nfNumeroNota\n }\n\n openLeaseReceipt\n .open(openLeaseReceiptParams)\n .then(() => notify.show(`O recibo de locação Nº ${recibo.notaNumero} foi aberto em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Recibos de Locação'\n openFilters={handleOnFilter}\n />\n \n \n {leaseReceipts?.map((recibo, index) => (\n \n \n {recibo.notaNumero.toString().padStart(6, '')}/{recibo.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n testID='notas-recibo-locacao-opcoes'\n style={{ width: 24, height: 24 }}\n icon={(props: any) => }>\n }\n >\n handleOpenLeaseReceipt(event, recibo)}\n title=\"Visualizar Recibo de Locação\"\n testID='notas-recibo-locacao-visualizar-recibo'\n leadingIcon={props => }\n />\n \n \n Valor: {formatCurrency(recibo.notaValor)}\n Emissão: {new Date(recibo.notaData).toLocaleDateString('pt-BR')}\n \n ))}\n \n \n \n )\n}\n","import React, { useCallback, useState } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { NFModel } from '@/domain/models'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { MenuActions, Menu, Box, HStack, IconButton, Text, CardList, PageHeader, CardBase } from '@/presentation/components'\nimport { nfState, isLoadingNfState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { styles } from '../../styles'\n\ntype NFProductProps = {\n openDanfe: OpenDanfe\n dateAdapter: DateAdapter\n}\n\nexport const NFProduct: React.FC = ({ openDanfe, dateAdapter }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [nfs] = useRecoilState(nfState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const client = getClient()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenDanfe = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openDanfeParams: OpenDanfeParams = {\n cliCodigo: client.codCliente,\n notaFiscal: nf\n }\n\n openDanfe\n .open(openDanfeParams)\n .then(() => notify.show(`A DANFE da NFº ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Produto'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nf, index) => (\n \n \n {nf.notaNumero.toString().padStart(6, '0')}/{nf.notaSerie}\n {!!nf.notaProcNFE &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 32, height: 32 }}\n testID='notas-produto-opcoes'\n icon={(props: any) => }>\n }>\n handleOpenDanfe(event, nf)}\n title=\"Visualizar Danfe\"\n testID='notas-produto-visualizar-danfe'\n leadingIcon={props => }\n />\n \n }\n \n Valor: {formatCurrency(nf.notaValor)}\n Emissão: {new Date(nf.notaData).toLocaleDateString('pt-BR')}\n {!nf.notaProcNFE &&\n \n \n \n Não existe xml para a NF\n \n \n }\n \n ))}\n \n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box, DatePicker, SideFilter, InputField, Divider, Snackbar, Button } from '@/presentation/components'\nimport { nfsState, nfsFiltersState, nfsConfigState, nfState, leaseReceiptState, isLoadingNfState, isOpenNfsFiltersState, nfsInvalidDateState } 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 [nfsInvalidDate, setNfsInvalidDate] = useRecoilState(nfsInvalidDateState)\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n const { isMobile } = useMediaQueries()\n const theme = useTheme()\n\n const client = getClient()\n\n useEffect(() => {\n const initFilters = {\n isOpen: false,\n dataInicio: returnInitialDateFilter(),\n dataFim: dateAdapter.today().toString()\n }\n\n if (!filters.dataInicio || !filters.dataFim) {\n setFilters(initFilters)\n }\n }, [])\n\n const returnInitialDateFilter = () => {\n const defaultInitialdate = dateAdapter.daysAgo(GetNFs.RN.DEFAULT_MONTHS_AGO)\n const formattedDefaultInitialdate = dateAdapter.format(defaultInitialdate, 'YYYY-MM-DD')\n\n if (client.limiteDataRetroativa) {\n const limitDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isBefore = dateAdapter.isBefore({ startDate: defaultInitialdate, endDate: limitDate })\n return isBefore ? dateAdapter.format(limitDate, 'YYYY-MM-DD') : formattedDefaultInitialdate\n }\n\n return formattedDefaultInitialdate\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 if (client.limiteDataRetroativa && field === 'dataInicio') {\n const filterParsedDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isValid = dateAdapter.isBefore({ startDate: date, endDate: filterParsedDate })\n\n if (isValid) return setNfsInvalidDate(true)\n\n setNfsInvalidDate(false)\n }\n\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => {\n setNfsInvalidDate(false)\n setOpen(false)\n }\n\n const closeLimitDateAlert = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setNfsInvalidDate(false)\n };\n\n return (\n \n \n \n }\n style={{\n backgroundColor: theme.colors.error,\n width: isMobile ? '100%' : '500px',\n display: nfsInvalidDate ? 'flex' : 'none'\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})\nexport const nfsInvalidDateState = atom({\n key: 'nfsInvalidDateState',\n default: false\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, nfsFiltersState } 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 const setFilters = useSetRecoilState(nfsFiltersState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const dtInicial = returnInitialDateFilter()\n const dtFinal = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n setFilters({\n dataInicio: dtInicial,\n dataFim: dtFinal\n })\n\n const getNFsParams: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial,\n dtFinal\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 const returnInitialDateFilter = () => {\n const defaultInitialdate = dateAdapter.daysAgo(GetNFs.RN.DEFAULT_MONTHS_AGO)\n const formattedDefaultInitialdate = dateAdapter.format(defaultInitialdate, 'YYYY-MM-DD')\n\n if (client.limiteDataRetroativa) {\n const limitDate = dateAdapter.parse(client.limiteDataRetroativa)\n const isBefore = dateAdapter.isBefore({ startDate: defaultInitialdate, endDate: limitDate })\n return isBefore ? dateAdapter.format(limitDate, 'YYYY-MM-DD') : formattedDefaultInitialdate\n }\n\n return formattedDefaultInitialdate\n }\n\n return (\n \n \n\n \n NFService({ openNfse, dateAdapter })} />\n NFProduct({ openDanfe, dateAdapter })} />\n LeaseReceipt({ openLeaseReceipt, dateAdapter })} />\n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { nfsState, isLoadingNfState, FiltersChipPanel, CardNfse, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype NFServiceProps = {\n openNfse: OpenNfse\n dateAdapter: DateAdapter\n}\n\nexport const NFService: React.FC = ({ openNfse, dateAdapter }) => {\n const theme = useTheme()\n const isLoading = useRecoilValue(isLoadingNfState)\n const nfs = useRecoilValue(nfsState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Serviço'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nfse, index) => \n \n )}\n \n \n \n )\n}\n","import React from 'react'\nimport { NotaFiscal } from '@/presentation/pages/NotaFiscal'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetRemoteGetNFs, makeOpenDanfe, makeOpenNfse, makeOpenLeaseReceipt } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeNFFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { Claim, ClaimsResult, ServiceType } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'isLoadingSacState',\n default: true\n})\n\nexport const sacState = atom({\n key: 'sacState',\n default: {\n listaReclamacoes: [] as Claim[],\n listaTipoAtendimento: [] as ServiceType[]\n } as ClaimsResult\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Claim } from '@/domain/models/sac-model'\nimport { DateAdapter } from '@/data/protocols'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { Text, Chip, VStack, Box, Divider, HStack } from '@/presentation/components'\nimport { sacState } from '@/presentation/pages/Sac/components'\nimport { CircleIcon } from '@/presentation/pages/ServiceOrders/components/CardOs/styles'\nimport { useRecoilValue } from 'recoil'\n\ntype CardSacProps = {\n sac: Claim\n dateAdapter: DateAdapter\n}\n\nexport const CardSac: React.FC = ({ sac, dateAdapter }: CardSacProps) => {\n const { isMobile } = useMediaQueries()\n const { listaTipoAtendimento } = useRecoilValue(sacState)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const colorType = {\n E: theme.colors.success,\n R: theme.colors.error,\n S: theme.colors.info\n }[sac.tipo]\n\n const sacType = listaTipoAtendimento?.find(tipo => tipo.codigo === sac.tipo)?.descricao ?? 'Não informado'\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n {sac.reclamante.toUpperCase()}\n \n \n Nº {sac.codReclamacao}\n \n \n\n \n\n \n \n \n \n Abertura:\n \n {dateAdapter.format(sac.data, 'DD/MM/YYYY HH:mm:ss')}\n \n \n \n Descrição:\n \n {sac.reclamacao}\n \n \n \n\n \n \n Tipo:\n \n {sacType &&\n \n }\n \n \n \n )\n}\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n marginLeft: 4,\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React, { useCallback } from 'react'\nimport { StyleSheet, GestureResponderEvent } from 'react-native'\nimport { Box, Button, Text, TextInput } from '@react-native-material/core'\nimport { RadioButton } from 'react-native-paper'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Claim } from '@/domain/models'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase } from '@/presentation/components'\nimport { isLoadingNewSacState, isOpenNewSacState, sacNewState, sacState } from '@/presentation/pages/Sac/components'\n\ntype ModalNewSacParams = {\n tipo: 'E' | 'R' | 'S'\n tipoDescricao: 'ELOGIO' | 'RECLAMAÇÃO' | 'SUGESTÃO'\n reclamante: string\n reclamacao: string\n}\n\ntype ModalNewSacProps = {\n createSac: CreateSac\n dateAdapter: DateAdapter\n}\n\nexport const ModalNewSac: React.FC = ({ createSac, dateAdapter }: ModalNewSacProps) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [newSac, setNewSac] = useRecoilState(sacNewState)\n const setSacs = useSetRecoilState(sacState)\n const setLoading = useSetRecoilState(isLoadingNewSacState)\n const [isOpen, setOpen] = useRecoilState(isOpenNewSacState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof ModalNewSacParams, value: string): void => {\n setNewSac(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n const typeDescription = {\n E: 'ELOGIO',\n S: 'SOLICITAÇÃO',\n R: 'RECLAMAÇÃO'\n }[newSac.tipo]\n\n const dateParam = dateAdapter.today().toString()\n\n const createSacParams: CreateSacParams = {\n reclamante: newSac.reclamante,\n reclamacao: newSac.reclamacao,\n codCliente: client.codCliente,\n tipo: newSac.tipo,\n data: dateParam,\n hora: dateParam,\n dataAbertura: dateParam,\n nomeCliente: client.nomeCliente,\n dataAcaoImediata: dateParam,\n dataAcaoCorretiva: dateParam,\n unidade: client.unidade,\n tipoDescricao: typeDescription\n }\n\n createSac\n .create(createSacParams)\n .then(codigo => {\n if (codigo) {\n successNewSac(createSacParams, codigo as unknown as string)\n resetNewSac()\n } else {\n throw new Error('Não foi possível gravar o SAC!')\n }\n })\n .catch(handleError)\n .finally(handleCloseModal)\n }\n\n const successNewSac = (createSacParams: CreateSacParams, codigo: string): void => {\n setSacs(currentState => ({\n ...currentState,\n listaReclamacoes: [\n ...currentState.listaReclamacoes,\n {\n ...createSacParams as unknown as Claim,\n codReclamacao: parseInt(codigo)\n }\n ]\n }))\n\n notify.success('SAC gravado com sucesso')\n }\n\n const resetNewSac = (): void => {\n setLoading(false)\n setOpen(false)\n setNewSac(currentState => ({\n ...currentState,\n reclamacao: '',\n reclamante: '',\n tipo: 'E',\n tipoDescricao: 'ELOGIO'\n }))\n }\n\n const handleCloseModal = useCallback((): void => {\n setLoading(false)\n setOpen(false)\n }, [])\n\n return (\n \n \n Preencha os dados para criar um SAC\n\n \n \n handleChangeInput('tipo', 'E')}\n />\n \n Elogio\n \n \n \n handleChangeInput('tipo', 'S')}\n />\n \n Solicitação\n \n \n \n handleChangeInput('tipo', 'R')}\n />\n \n Reclamação\n \n \n \n\n handleChangeInput('reclamante', text)}\n testID='sac-nome'\n value={newSac.reclamante}\n />\n handleChangeInput('reclamacao', text)}\n value={newSac.reclamacao}\n multiline\n />\n\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n textOrderStyles: {\n fontSize: 14,\n fontWeight: '400'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingNewSacState = atom({\n key: 'isLoadingNewSacState',\n default: true\n})\n\nexport const isOpenNewSacState = atom({\n key: 'isOpenNewSacState',\n default: false\n})\n\nexport const sacNewState = atom({\n key: 'newSacForm',\n default: {\n isLoading: false,\n tipo: 'E' as 'E' | 'R' | 'S',\n tipoDescricao: 'ELOGIO' as 'ELOGIO' | 'RECLAMAÇÃO' | 'SOLICITAÇÃO',\n reclamante: '',\n reclamacao: ''\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch',\n position: 'relative'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnContainer: {\n position: 'absolute',\n bottom: 16,\n right: 32\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { CreateSac, GetSacList } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { sacState, ModalNewSac, CardSac, isLoadingState, isOpenNewSacState } from '@/presentation/pages/Sac/components'\nimport { useAuth, useErrorHandler, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SacProps = {\n dateAdapter: DateAdapter\n getSacList: GetSacList\n createSac: CreateSac\n}\n\nexport const Sac: React.FC = ({ dateAdapter, getSacList, createSac }: SacProps) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [sacs, setSacs] = useRecoilState(sacState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const setOpenNewSac = useSetRecoilState(isOpenNewSacState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getSacList\n .get({ codigoCliente: client.codCliente })\n .then(setSacs)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleOpenNewSac = (): void => {\n setOpenNewSac(true)\n }\n\n return (\n \n \n \n }\n />\n \n {sacs.listaReclamacoes?.map(item => (\n \n ))}\n \n \n\n \n \n } color={themeClient.mainColor}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { Sac } from '@/presentation/pages/Sac'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeCreateSac, makeGetSacList } from '@/main/factories/usecases'\n\nexport const makeSacFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { SigmaCloudKeyResult, SowillKeyResult, SowillIdentifier } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const sigmaKeysState = atom({\n key: 'sigmaKeyState',\n default: [] as SigmaCloudKeyResult\n})\n\nexport const sowillKeysState = atom({\n key: 'sowillKeysState',\n default: [] as SowillKeyResult\n})\n\nexport const sowillIdentifierState = atom({\n key: 'sowillIdentifierState',\n default: {\n codInternoChave: 0,\n idCliente: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetSigmaEvents, SigmaFilterType } from '@/domain/usecases'\nimport { Box, DatePicker, SideFilter, Text } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { monitoringDateFiltersState, isLoadingMonitoringEventState, isOpenMonitoringFiltersState, SelectTypeSigmaEvent, remotyFilterState, sigmaFilterState, monitoringListHasError } from '@/presentation/pages/Events/components'\n\ntype SideFiltersProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SideFilters: React.FC = ({\n dateAdapter\n}) => {\n const { getClient } = useAuth()\n const client = getClient()\n\n const [monitoringFilterDate, setMonitoringFilterDate] = useRecoilState(monitoringDateFiltersState)\n const setRemotyFilter = useSetRecoilState(remotyFilterState)\n const setSigmaFilter = useSetRecoilState(sigmaFilterState)\n const [isOpen, setOpen] = useRecoilState(isOpenMonitoringFiltersState)\n const setNoMonitoringError = useSetRecoilState(monitoringListHasError)\n\n const [localFilterDate, setLocalFilterDate] = React.useState({\n dataInicial: '',\n dataFinal: ''\n })\n\n const isLoading = useRecoilValue(isLoadingMonitoringEventState)\n\n const handleResetState = (): void => {\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: '',\n dataFinal: ''\n })\n )\n\n setRemotyFilter({ remotyIdEquipamento: 0, remotyNmEquip: '' })\n\n setSigmaFilter({ sigmaTipo: null as unknown as SigmaFilterType, sigmaTituloChip: '' })\n }\n\n const handleClose = (): void => setOpen(false)\n\n useFocusEffect(\n useCallback(() => {\n handleResetState()\n }, [])\n )\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpen(false)\n setNoMonitoringError(false)\n\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: localFilterDate.dataInicial,\n dataFinal: localFilterDate.dataFinal\n }))\n }\n\n const handleChangeDate = useCallback((date: Date): void => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS, date).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(date.toString(), 'YYYY-MM-DD')\n\n setLocalFilterDate({ dataInicial, dataFinal })\n }, [])\n\n return (\n \n \n \n Referente aos 30 dias anteriores à data selecionada.\n handleChangeDate(date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n\n \n {([ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && (\n \n \n \n \n )) as React.ReactElement || undefined}\n \n )\n}\n","import { atom } from 'recoil'\nimport { SigmaFilterType } from '@/domain/usecases'\n\nexport const isOpenMonitoringFiltersState = atom({\n key: 'isOpenMonitoringFiltersState',\n default: false\n})\n\nexport const monitoringDateFiltersState = atom({\n key: 'monitoringDateFiltersState',\n default: {\n dataInicial: '',\n dataFinal: ''\n }\n})\n\nexport const remotyFilterState = atom({\n key: 'remotyFilterState',\n default: {\n remotyIdEquipamento: 0,\n remotyNmEquip: ''\n }\n})\n\nexport const sigmaFilterState = atom({\n key: 'sigmaFilterState',\n default: {\n sigmaTipo: null as unknown as SigmaFilterType,\n sigmaTituloChip: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n margin: 15,\n cursor: 'pointer'\n },\n selectInput: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n fontSize: 16,\n borderWidth: 1,\n borderColor: '#ccc',\n borderRadius: 4,\n backgroundColor: '#fff'\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\n },\n modalContent: {\n backgroundColor: '#fff',\n padding: 20,\n borderRadius: 8,\n width: 200\n },\n optionItem: {\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#ccc'\n }\n})\n","import React, { useState } from 'react'\nimport { View, Text, Modal, TouchableOpacity, TouchableWithoutFeedback } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { SigmaFilterTitle } from '@/domain/usecases'\nimport { sigmaFilterState } from '../SideFilters/atom'\nimport { AntDesign } from '@expo/vector-icons'\nimport { styles } from './styles'\n\nenum sigmaEventsFilterType {\n 'Todos' = 'rbTodos',\n 'Alarme' = 'rbAlarme',\n 'Teste Automático' = 'rbTstAuto',\n 'Armado' = 'rbArmado',\n 'Desarmado' = 'rbDesarmado',\n 'Sem Controle' = 'rbSControle',\n 'Desarmado ronda' = 'rbRonda'\n}\n\nexport const SelectTypeSigmaEvent = (): JSX.Element => {\n const [modalVisible, setModalVisible] = useState(false)\n const [filters, setFilters] = useRecoilState(sigmaFilterState)\n\n const sigmaFilterTitle: SigmaFilterTitle[] = ['Todos', 'Alarme', 'Teste Automático', 'Armado', 'Desarmado', 'Sem Controle', 'Desarmado ronda']\n\n const handleOpenModal = (): void => {\n setModalVisible(true)\n }\n\n const handleCloseModal = (): void => {\n setModalVisible(false)\n }\n\n const handleOptionPress = (option: SigmaFilterTitle): void => {\n const sigmaTipo = option.length ? sigmaEventsFilterType[option] : 'rbTodos'\n\n setFilters(currentFilters => ({\n ...currentFilters,\n sigmaTipo,\n sigmaTituloChip: option\n }))\n\n setModalVisible(false)\n }\n\n const stylesContainer = {\n ...styles,\n margin: 0\n }\n\n return (\n \n \n \n {filters.sigmaTituloChip || 'Tipos de eventos'}\n <>\n \n \n\n \n \n \n {sigmaFilterTitle.map((option) => (\n handleOptionPress(option)}\n style={styles.optionItem}\n >\n {option}\n \n ))}\n \n \n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { CentralMonitoring } from '@/domain/models'\nimport { useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { contactListHasError, monitoringListHasError, remotyFilterState, sectorListHasError, userListHasError } from '@/presentation/pages/Events/components'\n\nexport const SelectRemotyEventCompany: React.FC = () => {\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentCompany, setCompany] = useRecoilState(remotyFilterState)\n const setEventError = useSetRecoilState(monitoringListHasError)\n const setSectorError = useSetRecoilState(sectorListHasError)\n const setUserError = useSetRecoilState(userListHasError)\n const setContactError = useSetRecoilState(contactListHasError)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const companies = client?.centraisMonitoramento\n\n const onSelectCompany = (company: CentralMonitoring): void => {\n setCompany({ remotyIdEquipamento: company.idEquipment, remotyNmEquip: company.nmEquipment })\n }\n\n const handleSelectCompany = (company: CentralMonitoring): void => {\n onSelectCompany(company)\n setMenuOpen(false)\n\n setEventError(false)\n setSectorError(false)\n setUserError(false)\n setContactError(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {companies.map((company) => (\n handleSelectCompany(company)}\n title={company.nmEquipment}\n />\n ))}\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const sigmaTypeEventState = atom({\n key: 'typeSigmaEventState',\n default: [\n { _id: 'Todos', value: 'rbTodos' },\n { _id: 'Alarme', value: 'rbAlarme' },\n { _id: 'Teste Automático', value: 'rbTstAuto' },\n { _id: 'Armado', value: 'rbArmado' },\n { _id: 'Desarmado', value: 'rbDesarmado' },\n { _id: 'Sem Controle', value: 'rbSControle' },\n { _id: 'Desarmado ronda', value: 'rbRonda' }\n ]\n})\n\nexport type SigmaTypes = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\n","import { atom } from 'recoil'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\n\nexport const selectSigmaCloudKeyData = atom({\n key: 'selectSigmaCloudKeyData',\n default: {} as SigmaCloudKeyResponseModel\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { selectSigmaCloudKeyData } from './atom'\nimport { sigmaKeysState } from '../atom'\n\nexport const SelectSigmaCloudKey: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentKey, setCurrentKey] = useRecoilState(selectSigmaCloudKeyData)\n const keys = useRecoilValue(sigmaKeysState)\n const themeClient = getThemeClient()\n const { isMobile } = useMediaQueries()\n\n const handleSelectCompany = (company: SigmaCloudKeyResponseModel): void => {\n setCurrentKey(company)\n setMenuOpen(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((key) => (\n handleSelectCompany(key)}\n title={`Empresa: ${key.empresaSigma.toString()} - Chave: ${key.chave}/${key.particao}`}\n />\n ))}\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenMonitoringFiltersState, monitoringDateFiltersState, remotyFilterState, selectSigmaCloudKeyData, sowillIdentifierState } from '@/presentation/pages/Events/components'\nimport { ClientMonitoringType } from '@/domain/models'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const filters = useRecoilValue(monitoringDateFiltersState)\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const notify = useNotify()\n\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n\n const client = getClient()\n\n const period = filters.dataInicial && filters.dataFinal\n ? `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')} até ${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : filters.dataFinal\n ? `${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')}`\n\n const handleOpen = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n \n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams, GetRemotyEvents, GetRemotyEventsParams, GetSigmaEvents, GetSigmaEventsParams, PrintEvents, GetSowillEvents, GetSowillEventsParams, GetSowillIdentifier } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB, CardList, PageHeader, ActionsButtons, Stack } from '@/presentation/components'\nimport { FiltersChipPanel, CardMonitoringEvent, monitoringDateFiltersState, isOpenMonitoringFiltersState, SelectRemotyEventCompany, SelectSigmaCloudKey, SelectSowillKey, monitoringEventListState, isLoadingMonitoringEventState, sowillIdentifierState, selectSigmaCloudKeyData, remotyFilterState, monitoringListHasError, sigmaFilterState } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useFocusEffect } from '@react-navigation/native'\n\ntype MonitoringListEventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getMoniEvents: GetMoniEvents\n getSigmaEvents: GetSigmaEvents\n getRemotyEvents: GetRemotyEvents\n getSowillEvents: GetSowillEvents\n getSowillIdentifier: GetSowillIdentifier\n}\n\nexport const MonitoringEventList: React.FC = ({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents\n}) => {\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n\n const [isLoading, setLoading] = useRecoilState(isLoadingMonitoringEventState)\n const [monitoringEventList, setMonitoringEventList] = useRecoilState(monitoringEventListState)\n const [hasError, setHasError] = useRecoilState(monitoringListHasError)\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const [filters, setFilters] = useRecoilState(monitoringDateFiltersState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sigmaFilterType = useRecoilValue(sigmaFilterState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n setFilters({ dataInicial, dataFinal })\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n if (conditions && !hasError) { getEventsMonitoring() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n filters.dataInicial,\n sigmaFilterType.sigmaTipo,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetRemotyEventsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento,\n dtInicio: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dtFim: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate\n }\n\n setLoading(true)\n\n getRemotyEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetMoniEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetMoniEventsParams = {\n unidade: client.unidade.toString(),\n empresaMoni: client.empresaMonitoramento.toString(),\n codCliente: client.codCliente,\n dataInicial: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate\n }\n\n setLoading(true)\n\n getMoniEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetSigmaEventsParams = {\n empresa: client.empresa,\n cliente: currentSigmaKey.codCliente,\n dataIni: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dataFinal: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate,\n filtro: sigmaFilterType.sigmaTipo ? sigmaFilterType.sigmaTipo : GetSigmaEvents.RN.DEFAULT_FILTER_TYPE,\n idSigma: currentSigmaKey.empresaSigma\n }\n\n getSigmaEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetSowillEventsParams = {\n dateTimeInicioManutencao: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate,\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n getSowillEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsMonitoring = {\n [ClientMonitoringType.MONI]: handleGetMoniEvent,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaEvent,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaEvent,\n [ClientMonitoringType.REMOTY]: handleGetRemotyEvent,\n [ClientMonitoringType.SO_WILL]: handleGetSowillEvent\n }[client.tipoConexao]\n\n const handlePrint = (): void => {\n let listaEventos: GenericEventModel[]\n\n if (client.tipoConexao === ClientMonitoringType.MONI) {\n listaEventos = monitoringEventList.map(event => ({\n evento: event.evento,\n dataEvento: dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss'),\n descricao: event.descricao,\n empresaSigma: client.empresaMonitoramento\n }))\n } else {\n listaEventos = monitoringEventList.map(event => ({\n ...event,\n dataEvento: client.tipoConexao === ClientMonitoringType.REMOTY\n ? event.dataEvento\n : dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss')\n }))\n }\n\n const printParams = {\n tipoConexao: client.tipoConexao,\n data: listaEventos\n }\n\n printEvents.print(printParams)\n .then(res => res)\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n console.error({ printError: error })\n })\n }\n\n const handleFilter = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n }\n openFilters={handleFilter}\n />\n\n \n {filters.dataInicial && }\n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {monitoringEventList?.map(event => (\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 => (\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 const marginRight = window.innerWidth <= 1380 ? 36 : isMobile ? 'auto' : 0\n const marginLeft = window.innerWidth <= 1380 ? 36 : isMobile ? 'auto' : 0\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 => (\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, GetRemotyUsers, 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 = (props) => {\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: GetMoniUsers.Params = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n props.getMoniUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotyUserList = (): void => {\n const params: GetRemotyUsers.Params = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n props.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 props.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 props.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 => (\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 => (\n handleSelectCompany(identifier)}\n title={`Empresa ${identifier.empresaMonitoramento} - Chave ${identifier.chave}/ ${identifier.particao}`}\n />\n ))}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native-safe-area-context'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { PrintEvents, GetMoniEvents, GetRemotyEvents, GetSowillEvents, GetSigmaEvents, GetRemotySectors, GetMoniSectors, GetRemotyUsers, GetSowillUsers, GetRemotyContacts, GetSowillSectors, GetMoniUsers, GetSigmaCloudSectors, GetSigmaCloudUsers, GetSigmaCloudKeys, GetSowillKeys, GetSowillIdentifier, GetSigmaDeskSectors, GetSigmaDeskContacts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { NoResultMessage } from '@/presentation/components'\nimport { useAuth, useTheme, useThemeClient, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { SideFilters, SectorList, UserEventList, ContactEventList, MonitoringEventList, sowillKeysState, sowillIdentifierState, sigmaKeysState } from '@/presentation/pages/Events/components'\nimport { styles } from './styles'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { AccessDeniedError } from '@/domain/errors'\nimport { selectSowillKeyState } from './components/SelectSowillKey/atom'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype EventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getRemotyEvents: GetRemotyEvents\n getRemotySectors: GetRemotySectors\n getRemotyUsers: GetRemotyUsers\n getRemotyContacts: GetRemotyContacts\n getMoniEvents: GetMoniEvents\n getMoniSectors: GetMoniSectors\n getMoniUsers: GetMoniUsers\n getSowillEvents: GetSowillEvents\n getSowillSectors: GetSowillSectors\n getSowillUsers: GetSowillUsers\n getSowillKeys: GetSowillKeys\n getSowillIdentifier: GetSowillIdentifier\n getSigmaEvents: GetSigmaEvents\n getSigmaCloudSectors: GetSigmaCloudSectors\n getSigmaCloudUsers: GetSigmaCloudUsers\n getSigmaCloudKeys: GetSigmaCloudKeys\n getSigmaDeskSectors: GetSigmaDeskSectors\n getSigmaDeskContacts: GetSigmaDeskContacts\n}\n\nexport const Events: React.FC = ({\n dateAdapter,\n printEvents,\n getSigmaEvents,\n getRemotyEvents,\n getRemotySectors,\n getRemotyUsers,\n getRemotyContacts,\n getMoniEvents,\n getMoniSectors,\n getMoniUsers,\n getSowillEvents,\n getSowillSectors,\n getSowillUsers,\n getSowillKeys,\n getSowillIdentifier,\n getSigmaCloudSectors,\n getSigmaCloudUsers,\n getSigmaCloudKeys,\n getSigmaDeskSectors,\n getSigmaDeskContacts\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const { getClient, logout } = useAuth()\n const [sigmaKeys, setSigmaKeys] = useRecoilState(sigmaKeysState)\n\n const setSowillKeysList = useSetRecoilState(sowillKeysState)\n const selectedSowillKey = useRecoilValue(selectSowillKeyState)\n const setSowillIdentifier = useSetRecoilState(sowillIdentifierState)\n\n const themeClient = getThemeClient()\n const client = getClient()\n const notify = useNotify()\n\n const errorHandler = (error: Error): void => {\n notify.show(error.message, { variant: 'error' })\n\n if (error instanceof AccessDeniedError) {\n logout()\n }\n }\n\n useFocusEffect(\n useCallback(() => {\n if (\n [ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK]\n .includes(client.tipoConexao) &&\n !sigmaKeys.length) {\n getSigmaCloudKeys\n .getKeys({ codCliente: client.codCliente })\n .then(setSigmaKeys)\n .catch(errorHandler)\n } else\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao)) {\n getSowillKeys\n .getKeys({ codCliente: client.codCliente, unidade: client.unidade })\n .then(setSowillKeysList)\n .catch(errorHandler)\n }\n }, [])\n )\n\n useEffect(() => {\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao) &&\n selectedSowillKey.chave\n ) {\n getSowillIdentifier\n .getIdentifier(selectedSowillKey)\n .then(setSowillIdentifier)\n .catch(errorHandler)\n }\n }, [selectedSowillKey.chave])\n\n return (\n \n \n {client.tipoConexao != null\n ? \n MonitoringEventList({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents,\n getSowillIdentifier\n })}\n />\n\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n SectorList({\n getRemotySectors,\n getMoniSectors,\n getSowillSectors,\n getSigmaCloudSectors,\n getSigmaDeskSectors\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD\n ]\n .includes(client.tipoConexao) &&\n UserEventList({\n getRemotyUsers,\n getMoniUsers,\n getSowillUsers,\n getSigmaCloudUsers\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n ContactEventList({\n getRemotyContacts,\n getSigmaDeskContacts\n })}\n />\n }\n\n \n : \n }\n \n )\n}\n","import React from 'react'\nimport { Events } from '@/presentation/pages/Events'\nimport {\n makePrintEvents, makeGetRemotyUsersFactory, makeGetRemotyEventsFactory,\n makeGetRemotySectorsFactory, makeGetRemotyContactsFactory, makeGetMoniEventsFactory, makeGetMoniSectorsFactory, makeGetMoniUsersFactory, makeGetSowillSectorsFactory, makeGetSowillKeysFactory, makeGetSowillUsersFactory, makeGetSowillIdentifierFactory, makeGetSigmaEventsFactory, makeGetSowillEventsFactory, makeGetSigmaCloudSectorsFactory, makeGetSigmaCloudUsersFactory, makeGetSigmaCloudKeysFactory, makeGetSigmaDeskSectorsFactory, makeGetSigmaDeskContactsFactory\n} from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\n\nexport const makeEventsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n const printEvents = makePrintEvents()\n const dateAdapter = makeDateAdapterFactory()\n const getRemotyEvents = makeGetRemotyEventsFactory()\n const getRemotySectors = makeGetRemotySectorsFactory()\n const getRemotyUsers = makeGetRemotyUsersFactory()\n const getRemotyContacts = makeGetRemotyContactsFactory()\n const getMoniEvents = makeGetMoniEventsFactory()\n const getMoniUsers = makeGetMoniUsersFactory()\n const getMoniSectors = makeGetMoniSectorsFactory()\n const getSowillEvents = makeGetSowillEventsFactory()\n const getSowillSectors = makeGetSowillSectorsFactory()\n const getSowillUsers = makeGetSowillUsersFactory()\n const getSowillKeys = makeGetSowillKeysFactory()\n const getSowillIdentifier = makeGetSowillIdentifierFactory()\n const getSigmaEvents = makeGetSigmaEventsFactory()\n const getSigmaCloudSectors = makeGetSigmaCloudSectorsFactory()\n const getSigmaCloudUsers = makeGetSigmaCloudUsersFactory()\n const getSigmaCloudKeys = makeGetSigmaCloudKeysFactory()\n const getSigmaDeskSectors = makeGetSigmaDeskSectorsFactory()\n const getSigmaDeskContacts = makeGetSigmaDeskContactsFactory()\n\n return (\n <>\n\n \n \n \n\n )\n}\n","import { PrintEvents } from '@/domain/usecases'\nimport { RemotePrintEvents } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePrintEvents = (): PrintEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePrintEvents(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetRemotyEvents } from '@/domain/usecases'\nimport { RemoteGetRemotyEvents } from '@/data/usecases/events'\n\nexport const makeGetRemotyEventsFactory = (): GetRemotyEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyEvents(url, httpClient)\n}\n","import { GetRemotySectors } from '@/domain/usecases'\nimport { RemotySectorModel } from '@/domain/models'\nimport { RemoteGetRemotySectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotySectorsFactory = (): GetRemotySectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotySectors(url, httpClient)\n}\n","import { RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetRemotyUserEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyUsersFactory = (): GetRemotyUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyUserEvents(url, httpClient)\n}\n","import { GetRemotyContacts } from '@/domain/usecases'\nimport { RemotyContactResult } from '@/domain/models'\nimport { RemoteGetRemotyContacts } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyContactsFactory = (): GetRemotyContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyContacts(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetMoniEvents } from '@/domain/usecases'\nimport { RemoteGetMoniEvents } from '@/data/usecases/events'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { MoniEventModel } from '@/domain/models'\n\nexport const makeGetMoniEventsFactory = (): GetMoniEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n const dateAdapter = makeDateAdapterFactory()\n\n return new RemoteGetMoniEvents(url, httpClient, dateAdapter)\n}\n","import { GetMoniUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGeMoniUsersEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniUsersFactory = (): GetMoniUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGeMoniUsersEvents(url, httpClient)\n}\n","import { GetMoniSectors } from '@/domain/usecases'\nimport { RemoteGetMoniSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniSectorsFactory = (): GetMoniSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetMoniSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { RemoteGetSowillEvents } from '@/data/usecases/events'\nimport { GetSowillEvents } from '@/domain/usecases/events/get-sowill-events'\nimport { SoWillEventModel } from '@/domain/models'\n\nexport const makeGetSowillEventsFactory = (): GetSowillEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillEvents(url, httpClient)\n}\n","import { GetSowillSectors } from '@/domain/usecases'\nimport { SowillSectorResult } from '@/domain/models'\nimport { RemoteGetSowillSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillSectorsFactory = (): GetSowillSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillSectors(url, httpClient)\n}\n","import { GetSowillUsers } from '@/domain/usecases'\nimport { SowillUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillUsersFactory = (): GetSowillUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillUsers(url, httpClient)\n}\n","import { GetSowillKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillKeys } from '@/data/usecases/events'\nimport { SowillKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillKeysFactory = (): GetSowillKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillKeys(url, httpClient)\n}\n","import { GetSowillIdentifier } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillIdentifier } from '@/data/usecases/events'\nimport { SowillIdentifierResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillIdentifierFactory = (): GetSowillIdentifier => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillIdentifier(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents } from '@/domain/usecases'\nimport { RemoteGetSigmaEvents } from '@/data/usecases/events'\n\nexport const makeGetSigmaEventsFactory = (): GetSigmaEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaEvents(url, httpClient)\n}\n","import { GetSigmaCloudSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudSectors } from '@/data/usecases/events'\nimport { SigmaSectorModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudSectorsFactory = (): GetSigmaCloudSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudSectors(url, httpClient)\n}\n","import { GetSigmaCloudUsers } from '@/domain/usecases'\nimport { SigmaCloudUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudUsersFactory = (): GetSigmaCloudUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudUsers(url, httpClient)\n}\n","import { GetSigmaCloudKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudKeys } from '@/data/usecases/events'\nimport { SigmaCloudKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudKeysFactory = (): GetSigmaCloudKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudKeys(url, httpClient)\n}\n","import { SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaDeskSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaDeskSectors } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskSectorsFactory = (): GetSigmaDeskSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { GetSigmaDeskContacts } from '@/domain/usecases'\nimport { SigmaDeskContactModel } from '@/domain/models'\nimport { RemoteGetSigmaDeskContacts } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskContactsFactory = (): GetSigmaDeskContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskContacts(url, httpClient)\n}\n","\nimport { atom } from 'recoil'\nimport { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\n\nexport const isLoadingState = atom({\n key: 'travelAlertLoadingState',\n default: false\n})\n\nexport const travelAlertState = atom({\n key: 'travelAlertState',\n default: {\n solicitante: '',\n email: '',\n telefone1: '',\n telefone2: '',\n dataSaida: '',\n horaSaida: '',\n dataRetorno: '',\n horaRetorno: '',\n recomendacoes: '',\n chavesSomenteComCentral: true,\n possuiAutorizados: false,\n possuiVeiculosCuidadosCentral: false\n }\n})\n\nexport const travelAlertResponsiblesKeysState = atom({\n key: 'travelAlertResponsiblesKeysState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertAuthorizedsState = atom({\n key: 'travelAlertAuthorizedsState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertVehiclesState = atom({\n key: 'travelAlertVehiclesState',\n default: [] as AddTravelAlertOsVehicle[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { addResponsibleState, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertResponsiblesKeysState, travelAlertAuthorizedsState, travelAlertAddResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport const ModalAddResponsible: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [addResponsible, setState] = useRecoilState(addResponsibleState)\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [modalState, setModalState] = useRecoilState(travelAlertAddResponsibleState)\n const setModalVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const setTravelAlertResponsibles = useSetRecoilState(travelAlertAuthorizedsState)\n const setTravelAlertResponsiblesKeys = useSetRecoilState(travelAlertResponsiblesKeysState)\n\n const themeClient = getThemeClient()\n const addNewVehicle = !!addVehicle.placa\n\n const handleChangeInput = (name: keyof AddTravelAlertOsResponsible, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddResponsible = useCallback((event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const responsible: AddTravelAlertOsResponsible = {\n id: new Date().getMilliseconds(),\n nome: addResponsible.nome,\n endereco: addResponsible.endereco,\n telefone1: addResponsible.telefone1,\n telefone2: addResponsible.telefone2,\n observacao: addResponsible.observacao\n }\n\n switch (modalState.typeCurrent) {\n case AddTravelAlertResponsibleType.AUTHORIZED:\n setTravelAlertResponsibles(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.KEYS:\n setTravelAlertResponsiblesKeys(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.VEHICLE_KEYS:\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: [\n ...currentState.responsaveis,\n responsible\n ]\n }))\n break\n case AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED:\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: [\n ...currentState.autorizados,\n responsible\n ]\n }))\n break\n default:\n break\n }\n\n handleClose()\n handleReset()\n }, [addResponsible, modalState.typeCurrent])\n\n const handleReset = (): void => {\n setState({\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n })\n }\n\n const handleClose = (): void => {\n setModalState(currentState => ({ ...currentState, isOpen: false }))\n addNewVehicle && setModalVehicle(true)\n }\n\n return (\n \n \n Adicionar responsável\n {[AddTravelAlertResponsibleType.VEHICLE_KEYS, AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED].includes(modalState.typeCurrent) ? 'do veículo' : ''}\n \n\n handleChangeInput('nome', text)}\n value={addResponsible?.nome}\n maxLength={30}\n />\n\n \n handleChangeInput('telefone1', text)}\n style={{ flex: 1 }}\n />\n\n handleChangeInput('telefone2', text)}\n style={{ flex: 1 }}\n />\n \n\n handleChangeInput('endereco', text)}\n value={addResponsible?.endereco}\n maxLength={100}\n />\n\n handleChangeInput('observacao', text)}\n value={addResponsible?.observacao}\n multiline\n numberOfLines={4}\n />\n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const travelAlertAddResponsibleState = atom({\n key: 'travelAlertAddResponsibleState',\n default: {\n isOpen: false,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n }\n})\n\nexport const addResponsibleState = atom({\n key: 'addResponsibleState',\n default: {\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8,\n marginTop: 12\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack, VStack, HStack } from '@/presentation/components'\nimport { useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ResponsiblesPanel, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertAddResponsibleState, travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type AddVehicleParams = {\n placa: string\n possuiAutorizados: boolean\n possuiResponsaveis: boolean\n}\n\nexport const ModalAddVehicle: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [isOpen, setOpen] = useRecoilState(isOpenTravelAlertAddVehicle)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setTravelAlertAddVehicle = useSetRecoilState(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const handleChangeInput = (name: keyof AddVehicleParams, value: string | boolean): void => {\n setAddVehicle(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddVehicle = (): void => {\n const vehicle = {\n id: new Date().getMilliseconds(),\n placa: addVehicle.placa,\n responsaveis: addVehicle.responsaveis,\n autorizados: addVehicle.autorizados,\n possuiAutorizados: !!addVehicle.autorizados.length,\n possuiResponsaveis: !!addVehicle.responsaveis.length\n }\n\n setTravelAlertAddVehicle(currentState => [...currentState, vehicle])\n handleClose()\n notify.show(`Veículo placa ${vehicle.placa} adicionado com sucesso!`)\n }\n\n const handleReset = (): void => {\n setAddVehicle({\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n handleReset()\n }\n\n return (\n \n \n \n \n Adicionar veículo\n \n\n handleChangeInput('placa', text)}\n value={addVehicle.placa}\n maxLength={30}\n />\n\n \n \n Responsáveis da chave do veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_KEYS\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: currentState.responsaveis.filter(resp => resp.id !== idResp)\n }))\n }}\n />\n \n\n \n \n Autorizados a utilizar o veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: currentState.autorizados.filter(vehicle => vehicle.id !== idResp)\n }))\n }}\n />\n \n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenTravelAlertAddVehicle = atom({\n key: 'isOpenTravelAlertAddVehicle',\n default: false\n})\n\nexport const addVehicleState = atom({\n key: 'addVehicleState',\n default: {\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { IconButton, Surface } from 'react-native-paper'\nimport { AddTravelAlertOsResponsible } from '@/domain/usecases'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\n\ntype ResponsiblesPanelProps = {\n responsibles: AddTravelAlertOsResponsible[]\n onAddNew: () => void\n onRemove: (idResp: number) => void\n variant?: 'tiny' | 'regular'\n disabled?: boolean\n}\n\nexport const ResponsiblesPanel: React.FC = ({\n responsibles,\n onAddNew,\n onRemove,\n variant,\n disabled = false\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n }\n color={disabled ? theme.colors.greyLight : themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {responsibles\n .map((resp, index) => {\n let description = `Telefone 1: ${resp.telefone1}\\r\\n`\n description += `${resp.endereco}`\n\n return (\n \n \n \n \n \n {resp.nome.toUpperCase()}\n \n {variant === 'tiny' &&\n {description}\n }\n \n onRemove(resp.id)}\n />\n \n \n )\n })\n }\n \n {responsibles?.length < 4 && makeAction()}\n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { DateAdapter } from '@/data/protocols'\nimport { DatePicker, Stack, TextInput } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { travelAlertTimePickerState, travelAlertState, isLoadingState } from '@/presentation/pages/TravelAlert/components'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\ntype SelectDateTimeProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SelectDateTime: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const isLoading = useRecoilValue(isLoadingState)\n const setModalTimePicker = useSetRecoilState(travelAlertTimePickerState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setTravelAlert(currentState => ({\n ...currentState,\n dataSaida: dateAdapter.today().toString(),\n dataRetorno: dateAdapter.daysLater(15).toString()\n }))\n }, [])\n\n const handleChangeDate = useCallback((field: keyof TravelAlertParams, date: Date): void => {\n setTravelAlert(currentFilters => ({ ...currentFilters, [field as string]: date.toString() }))\n }, [])\n\n return (\n <>\n \n handleChangeDate('dataSaida', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaSaida' })}>\n \n \n }\n />\n \n \n handleChangeDate('dataRetorno', date ?? dateAdapter.daysLater(15))}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaRetorno' })}>\n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n dateRow: {\n width: '100%',\n gap: 12\n }\n})\n","import { atom } from 'recoil'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\nexport const travelAlertTimePickerState = atom({\n key: 'travelAlertTimePickerState',\n default: {\n isOpen: false,\n currentTime: '' as keyof TravelAlertParams\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\nimport { travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { IconButton, Surface } from 'react-native-paper'\n\ntype VehiclePanelProps = {\n openAddNew: () => void\n onRemove: (idVehicle: number) => void\n}\n\nexport const VehiclePanel: React.FC = ({ openAddNew, onRemove }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const vehicles = useRecoilValue(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n } color={themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {vehicles\n .map((vehicle, index) =>\n \n \n \n \n \n {vehicle.placa.toUpperCase()}\n \n \n onRemove(vehicle.id)}\n />\n \n \n )\n }\n \n {vehicles?.length <= 4 && makeAction()}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n },\n formArea: {\n marginTop: 12,\n width: '100%',\n padding: 24,\n marginHorizontal: 'auto',\n gap: 12\n },\n input: {\n flex: 1,\n marginTop: 12\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n cardInformation: {\n display: 'flex',\n gap: 8\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n gap: 16\n },\n inlineInputs: {\n display: 'flex',\n flexDirection: 'row',\n gap: 16\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { AddTravelAlertOs, AddTravelAlertOsParams, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { TextInput, Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, Card, CardSwitch, TimePicker, NavigationPagesProps, ReactNativePaperTimePros, InputField, VStack, Loading } from '@/presentation/components'\nimport { ModalAddResponsible, ModalAddVehicle, ResponsiblesPanel, VehiclePanel, travelAlertTimePickerState, travelAlertState, SelectDateTime, isOpenTravelAlertAddVehicle, isLoadingState, travelAlertAuthorizedsState, travelAlertResponsiblesKeysState, travelAlertVehiclesState, travelAlertAddResponsibleState, addResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type TravelAlertParams = {\n dataSaida: string\n horaSaida: string\n dataRetorno: string\n horaRetorno: string\n solicitante: string\n email: string\n telefone1: string\n telefone2: string\n recomendacoes: string\n chavesSomenteComCentral: boolean\n possuiAutorizados: boolean\n possuiVeiculosCuidadosCentral: boolean\n}\n\ntype TravelAlertProps = NavigationPagesProps & {\n addTravelAlertOs: AddTravelAlertOs\n dateAdapter: DateAdapter\n}\n\nexport const TravelAlert: React.FC = ({ navigation, dateAdapter, addTravelAlertOs }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [modalTimePicker, setModalTimePicker] = useRecoilState(travelAlertTimePickerState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const [authorizeds, setAuthorizeds] = useRecoilState(travelAlertAuthorizedsState)\n const [responsiblesKeys, setResponsiblesKeys] = useRecoilState(travelAlertResponsiblesKeysState)\n const [vehicles, setVehicles] = useRecoilState(travelAlertVehiclesState)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setOpenAddVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const reset = useResetRecoilState(travelAlertState)\n const resetAuthorizeds = useResetRecoilState(travelAlertAuthorizedsState)\n const resetResponsibleKeys = useResetRecoilState(travelAlertResponsiblesKeysState)\n const resetVehicles = useResetRecoilState(travelAlertVehiclesState)\n const resetAddResponsible = useResetRecoilState(addResponsibleState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const handleAddTravelAlertOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n if (isValidDataTravelAlertOs()) {\n setLoading(true)\n\n const addTravelOsParams: AddTravelAlertOsParams = {\n ...travelAlert,\n cliente: client.codCliente,\n empresa: client.empresa,\n modalidade: client.modalidade,\n responsaveisChave: responsiblesKeys,\n autorizados: authorizeds,\n veiculos: vehicles\n }\n\n addTravelAlertOs\n .add(addTravelOsParams)\n .then(ordem => {\n navigation.navigate(NavigationRoute.ServiceOrders)\n notify.show(`Aviso de viagem registrado com sucesso! Criada OS ${ordem?.toString().padStart(6, '0')}`)\n handleReset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados os campos obrigatórios(*) devem ser preenchidos'))\n }\n }\n\n const isValidDataTravelAlertOs = (): boolean => {\n if (\n !travelAlert.email ||\n !travelAlert.telefone1 ||\n !travelAlert.dataRetorno ||\n !travelAlert.horaRetorno ||\n !travelAlert.dataSaida ||\n !travelAlert.horaSaida ||\n !travelAlert.recomendacoes\n ) {\n return false\n } else {\n return true\n }\n }\n\n const handleChange = (name: keyof TravelAlertParams, value: string | boolean): void => {\n setTravelAlert(currentState => ({ ...currentState, [name]: value }))\n }\n\n const handleChangeTime = useCallback((field: keyof TravelAlertParams, time: ReactNativePaperTimePros): void => {\n const hours = time.hours.toString().padStart(2, '0')\n const minutes = time.minutes.toString().padStart(2, '0')\n\n setTravelAlert(currentFilters => ({\n ...currentFilters,\n [field]: `${hours}:${minutes}`\n }))\n }, [modalTimePicker.currentTime])\n\n const handleClose = useCallback((): void => {\n setModalTimePicker(currentState => ({ ...currentState, isOpen: false }))\n }, [])\n\n const handleReset = (): void => {\n reset()\n resetAuthorizeds()\n resetResponsibleKeys()\n resetVehicles()\n resetAddResponsible()\n }\n\n return (\n \n \n {isLoading\n ? \n : \n }\n />\n \n \n handleChange('solicitante', text)}\n style={styles.input}\n />\n handleChange('email', text)}\n />\n \n\n \n handleChange('telefone1', text)}\n />\n handleChange('telefone2', text)}\n />\n \n\n \n\n \n handleChange('recomendacoes', text)}\n multiline\n numberOfLines={4}\n />\n \n\n \n\n \n handleChange('chavesSomenteComCentral', !travelAlert.chavesSomenteComCentral)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.KEYS\n })\n }}\n onRemove={(idResp) => {\n setResponsiblesKeys(responsiblesKeys.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiAutorizados', !travelAlert.possuiAutorizados)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAuthorizeds(authorizeds.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiVeiculosCuidadosCentral', !travelAlert.possuiVeiculosCuidadosCentral)}\n >\n setOpenAddVehicle(true)}\n onRemove={(idVehicle) => {\n setVehicles(vehicles => vehicles.filter(vehicle => vehicle.id !== idVehicle))\n }}\n />\n \n \n \n }\n \n\n \n \n \n \n\n \n \n {\n handleChangeTime(modalTimePicker.currentTime, time)\n handleClose()\n }}\n onDimiss={handleClose}\n time={{ hours: 12, minutes: 58 }}\n visible={modalTimePicker.isOpen}\n />\n \n )\n}\n","import React from 'react'\nimport { TravelAlert } from '@/presentation/pages/TravelAlert'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddTravelAlertOs } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeTravelAlertFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { 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 footer: {\n fontSize: 10,\n position: 'absolute',\n width: '100%',\n bottom: 8,\n left: 0,\n textAlign: 'center'\n }\n})\n","import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { UpdateDefaultPassword, ValidatePasswordRecovery } from '@/domain/usecases'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { BackgroundTheme, Box, RecoveryPasswordC, Text } from '@/presentation/components'\nimport { LogoTheme } from '@/presentation/components/LogoTheme'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype RecoveryPasswordProps = {\n navigation: any\n validatePasswordRecovery: ValidatePasswordRecovery\n updateDefaultPassword: UpdateDefaultPassword\n}\n\nexport const RecoveryPassword: React.FC = ({ navigation, validatePasswordRecovery, updateDefaultPassword }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const themeClient = getThemeClient()\n\n return (\n \n \n\n \n \n \n Recuperação de senha{version}\n \n Desenvolvido por Inside Sistemas | v{version}\n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps } from '@/presentation/components'\nimport { RecoveryPassword } from '@/presentation/pages/RecoveryPassword'\nimport { makeUpdateDefaultPassword, makeValidatePasswordRecovery } from '../usecases'\n\nexport const makeRecoveryPasswordFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderDetailModel } from '@/domain/models'\n\nexport const isLoadingServiceOrderDetailState = atom({\n key: 'isLoadingServiceOrderDetailState',\n default: false\n})\n\nexport const serviceOrderDetailState = atom({\n key: 'serviceOrderDetailState',\n default: null as unknown as ServiceOrderDetailModel\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n headerBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 20,\n paddingHorizontal: 10,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n marginBottom: 20\n },\n headerTitle: {\n fontWeight: '600',\n fontSize: 20\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Box, Text, logoEmpresaState } from '@/presentation/components'\nimport { isPrintingServiceOrderDetailState, serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useErrorHandler, useImage, useMediaQueries } from '@/presentation/hooks'\nimport { styles } from './styles'\n\nexport const PageHeader: React.FC = () => {\n const { getImage } = useImage()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const isPrinting = useRecoilValue(isPrintingServiceOrderDetailState)\n const [logoEmpresa, setLogoEmpresa] = useRecoilState(logoEmpresaState)\n\n const textStatus = {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[serviceOrderDetail.status]\n\n useEffect(() => {\n getImage(serviceOrderDetail.logoEmpresa, 'logo')\n .then(setLogoEmpresa)\n .catch(handleError)\n }, [])\n\n return (\n \n \n Logo Empresa\n \n \n OS {serviceOrderDetail.numOS}\n {serviceOrderDetail.tipoOSDescricao}\n {textStatus}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardArea: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n pageInfo: {\n fontWeight: '600',\n fontSize: 20,\n marginBottom: 20,\n marginTop: 20\n },\n bold: {\n fontWeight: '600'\n },\n additionalText: {\n fontSize: 13,\n fontStyle: 'italic'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n totalizerTextBox: {\n marginTop: 10,\n marginBottom: 20,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end'\n },\n cardBase: {\n display: 'flex',\n borderRadius: 4,\n minWidth: 280,\n maxWidth: 600\n },\n cardContent: {\n display: 'flex',\n gap: 8\n },\n imageContainer: {\n maxWidth: 280,\n width: '100%',\n height: 280,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden'\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const ClientInfo: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n Informações do Cliente\n \n \n \n Geral\n \n Nome: {serviceOrderDetail.codCliente} - {serviceOrderDetail.cliente}\n Fantasia: {serviceOrderDetail.fantasia}\n CPF/CNPJ: {serviceOrderDetail.cpf}\n \n \n \n Contato & Endereço\n \n Email: {serviceOrderDetail.emailCliente}\n Telefone: {serviceOrderDetail.fone1}\n Endereço: {serviceOrderDetail.endereco} - {serviceOrderDetail.bairro}, {serviceOrderDetail.cidade} - {serviceOrderDetail.estado}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsInfo: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n Informações da OS\n \n \n \n Observações de Abertura\n \n {serviceOrderDetail.executar}\n \n \n \n Observações de Fechamento\n \n {serviceOrderDetail.obsFechamento}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, CardDetails, CardRow, DataTable, Text, VStack } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat, useMediaQueries } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsProducts: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n const { isMobile } = useMediaQueries()\n\n const totalBrutoProdutos = serviceOrderDetail.listaProdutos?.reduce(\n (acc, produto) => acc + (produto.unitario * produto.quantidade),\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaProdutos?.length &&\n <>\n Produtos da OS\n \n \n \n \n Quantidade\n {serviceOrderDetail?.exibeValoresProdutosServicos && Unitário}\n {serviceOrderDetail?.exibeValoresProdutosServicos && Total}\n Cobrança\n {!isMobile && Motivo}\n Entregues\n \n\n {serviceOrderDetail.listaProdutos.map((produto, index) => (\n \n \n {produto.codProduto} - {produto.descricao.toUpperCase()}\n \n \n {produto.quantidade.toString().replace('.', ',')} {produto.unidadeMedida}\n {serviceOrderDetail?.exibeValoresProdutosServicos && {formatCurrency(produto.unitario)}}\n {serviceOrderDetail?.exibeValoresProdutosServicos && {formatCurrency(produto.unitario * produto.quantidade)}}\n {produto.cobraCliente ? 'SIM' : 'NÃO'}\n {!isMobile && {produto.motivo ? produto.motivo : '-'}}\n {produto.entregue}\n \n \n ))}\n \n {serviceOrderDetail?.exibeValoresProdutosServicos &&\n \n Valor Bruto de Produtos: {formatCurrency(totalBrutoProdutos)}\n Desconto Aplicado na OS: {serviceOrderDetail.pDesconto}% - {formatCurrency(serviceOrderDetail.descontoProd)}\n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n \n }\n \n \n \n }\n \n )\n}\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 serviceOrderDetail?.exibeValoresProdutosServicos &&\n <>\n Valores Gerais\n \n \n {serviceOrderDetail?.exibeValoresProdutosServicos &&\n <>\n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n Total Líquido de Serviços: {formatCurrency(serviceOrderDetail.totalServicos)}\n Total de Descontos: {formatCurrency(serviceOrderDetail.descontoProd + serviceOrderDetail.descontoServ)}\n \n Valor da OS: {formatCurrency(serviceOrderDetail.totalProdutos + serviceOrderDetail.totalServicos)}\n \n \n }\n \n \n \n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, CardDetails, CardRow, DataTable, dateAdapterAtom, Text, VStack } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsTreatments: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n\n const handlePastTime = (initialHour: string, finalHour: string): string => {\n const initialTime = new Date(`1970-01-01T${initialHour}`)\n const finalTime = new Date(`1970-01-01T${finalHour}`)\n const durationInMilliseconds = finalTime.getTime() - initialTime.getTime()\n\n const hours = Math.floor(durationInMilliseconds / 3600000)\n const minutes = Math.floor((durationInMilliseconds % 3600000) / 60000)\n const seconds = Math.floor((durationInMilliseconds % 60000) / 1000)\n\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n const handleTotalDuration = (): string => {\n let totalHours = 0\n let totalMinutes = 0\n let totalSeconds = 0\n\n serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .forEach((atendimento) => {\n const [hours, minutes, seconds] = handlePastTime(\n dateAdapter.format(atendimento.hrInicio, 'HH:mm:ss'),\n dateAdapter.format(atendimento.hrFim, 'HH:mm:ss')\n ).split(':').map(Number)\n totalHours += hours\n totalMinutes += minutes\n totalSeconds += seconds\n })\n\n totalMinutes += Math.floor(totalSeconds / 60)\n totalSeconds %= 60\n totalHours += Math.floor(totalMinutes / 60)\n totalMinutes %= 60\n\n return `${totalHours.toString().padStart(2, '0')}:${totalMinutes.toString().padStart(2, '0')}:${totalSeconds.toString().padStart(2, '0')}`\n }\n\n return (\n <>\n {!!serviceOrderDetail.listaAtendimentos?.length &&\n <>\n Atendimentos Feitos na OS\n \n \n \n \n Data\n Início\n Fim\n Responsável\n \n\n {serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .map((atendimento, index) => (\n \n \n Técnico: {atendimento.codTecnico} - {atendimento.tecnico}\n \n \n {dateAdapter.format(atendimento.data, 'DD/MM/yyyy')}\n {dateAdapter.format(atendimento.hrInicio, 'HH:mm:ss')}\n {dateAdapter.format(atendimento.hrFim, 'HH:mm:ss')}\n {atendimento.responsavel}\n \n {atendimento.observacoes &&\n \n \n Observações: {atendimento.observacoes}\n \n \n }\n \n ))}\n \n \n Total de Horas: {handleTotalDuration()}\n \n \n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport { Box, Text, CardRow, CardDetails } from '@/presentation/components'\nimport { serviceOrderDetailState, selectedOsImageViewState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsSignatures: React.FC = () => {\n const serviceOrderDetails = useRecoilValue(serviceOrderDetailState)\n const setImageView = useSetRecoilState(selectedOsImageViewState)\n\n return (\n <>\n {!!serviceOrderDetails.assinaturasFechamento?.length &&\n <>\n Assinaturas\n \n {serviceOrderDetails.assinaturasFechamento.map((sign, index) => (\n { setImageView({ uri: sign.caminhoArquivo, description: sign.nomeArquivo }) }}>\n \n \n \n {sign.nomeArquivo}\n \n \n \n ))}\n \n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport type ImageProps = {\n uri: string\n description: string\n}\n\nexport const selectedOsImageViewState = atom({\n key: 'selectedOsImageViewState',\n default: null as unknown as ImageProps\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Box, Text, CardRow, Card } from '@/presentation/components'\nimport { isPrintingServiceOrderDetailState, serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { theme } from '@/presentation/styles'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { styles } from '../../styles'\nimport { selectedOsImageViewState } from '../OsImageView/atom'\n\nexport const OsImages: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const serviceOrderDetails = useRecoilValue(serviceOrderDetailState)\n const setImageView = useSetRecoilState(selectedOsImageViewState)\n const isPrinting = useRecoilValue(isPrintingServiceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetails.imagensGerais?.length &&\n <>\n Anexos\n \n {serviceOrderDetails\n .imagensGerais\n .filter(image => !(/PERGUNTA\\d+\\.png$/.test(image.nomeArquivo)))\n .map((image, index) => (\n { setImageView({ uri: image.caminhoArquivo, description: image.nomeArquivo }) }}\n style={{\n ...styles.cardBase,\n backgroundColor: theme.colors.backgroundCard,\n padding: isMobile ? 4 : 8,\n ...(isPrinting && { boxShadow: 'none' })\n }}\n >\n \n \n {image.nomeArquivo}\n \n \n \n ))\n }\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Box, Text, Card, Divider, Chip } from '@/presentation/components'\nimport { selectedOsImageViewState, serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\n\nexport const OsChecklist: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const serviceOrderDetails = useRecoilValue(serviceOrderDetailState)\n const setSelectedImageView = useSetRecoilState(selectedOsImageViewState)\n\n const getImageAttachments = (codInternoPergunta: number): string => {\n const image = serviceOrderDetails?.imagensGerais\n .find(image => image.nomeArquivo.endsWith(`PERGUNTA${codInternoPergunta}.png`))\n\n return image?.caminhoArquivo ?? ''\n }\n\n return (\n <>\n {!!serviceOrderDetails?.checklist?.perguntas?.length &&\n <>\n Checklist - {serviceOrderDetails?.checklist.titulo.toUpperCase()}\n\n \n {serviceOrderDetails.checklist.perguntas.map((pergunta, index) => {\n const perguntaLabel = `${pergunta.pergunta}`\n const imagemBase64 = getImageAttachments(pergunta.codInterno)\n\n return (\n \n \n PERGUNTA {index + 1}\n \n \n {perguntaLabel}\n \n {pergunta.descritiva\n ? RESPOSTA: {pergunta.oSCheckListsRespostas.detalhes || 'Não informada'}\n : \n }\n {!!imagemBase64 &&\n { setSelectedImageView({ description: '', uri: imagemBase64 }) }}\n >\n \n {`Image\n \n \n }\n \n \n )})\n }\n \n \n }\n \n )\n}\n\nexport const styles = StyleSheet.create({\n cardBase: {\n display: 'flex',\n borderRadius: 4,\n minWidth: 280,\n maxWidth: 600,\n marginVertical: 12\n },\n pageInfo: {\n fontWeight: '600',\n fontSize: 20,\n marginBottom: 20,\n marginTop: 20\n },\n cardContent: {\n display: 'flex',\n gap: 8\n },\n imageContainer: {\n maxWidth: 140,\n width: '100%',\n height: 140\n },\n titleQuestion: {\n fontSize: 12,\n fontWeight: '700'\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, HStack, IconButton, ModalBase, Text } from '@/presentation/components'\nimport { ImageProps, selectedOsImageViewState } from './atom'\nimport { StyleSheet } from 'react-native'\n\ntype OsImageViewProps = {\n}\n\nexport const OsImageView: React.FC = () => {\n const [imageView, setImageView] = useRecoilState(selectedOsImageViewState)\n\n const handleClose = (): void => {\n setImageView(null as unknown as ImageProps)\n }\n\n return (\n \n \n \n {imageView?.description}\n }\n onPress={handleClose}\n />\n \n\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n height: '100vh',\n gap: 8,\n overflow: 'hidden'\n },\n image: {\n flex: 1\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { HStack, IconButton } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { isPrintingServiceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\n\nexport const PrintButton: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const setIsPrinting = useSetRecoilState(isPrintingServiceOrderDetailState)\n const themeClient = getThemeClient()\n\n const handleFormatPrint = async (): Promise => {\n const style = document.createElement('style')\n style.innerHTML = `\n @media print {\n body {\n zoom: 60%;\n }\n }\n `\n\n document.head.appendChild(style)\n setIsPrinting(true)\n window.addEventListener('afterprint', () => setIsPrinting(false))\n }\n\n const handlePrint = async (): Promise => {\n await handleFormatPrint()\n window.print()\n }\n\n return \n }\n />\n \n}\n","import { atom } from 'recoil'\n\nexport const isPrintingServiceOrderDetailState = atom({\n key: 'isPrintingServiceOrderDetailState',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect, useRoute } from '@react-navigation/native'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { Loading, Box, NoResultMessage, VStack } from '@/presentation/components'\nimport { useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { serviceOrderDetailState, PageHeader, ClientInfo, OsProducts, OsTotalizer, OsTreatments, OsSignatures, isLoadingServiceOrderDetailState, OsInfo, OsImages, PrintButton, isPrintingServiceOrderDetailState, OsImageView, OsChecklist } from '@/presentation/pages/ServiceOrderDetail/components'\n\ntype ServiceOrderDetailProps = {\n getServiceOrderDetail: GetServiceOrderDetail\n}\n\nexport type ServiceOrderDetailUrlModel = {\n param: string\n}\n\nexport const ServiceOrderDetail: React.FC = (props) => {\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const isPrinting = useRecoilValue(isPrintingServiceOrderDetailState)\n const [isLoading, setIsLoading] = useRecoilState(isLoadingServiceOrderDetailState)\n const [serviceOrderDetail, setServiceOrderDetail] = useRecoilState(serviceOrderDetailState)\n\n const { param } = useRoute().params as ServiceOrderDetailUrlModel\n\n useFocusEffect(\n useCallback(() => {\n setIsLoading(true)\n\n const tokenParam = {\n token: param\n }\n\n props.getServiceOrderDetail\n .getDetail(tokenParam)\n .then(setServiceOrderDetail)\n .catch(handleError)\n .finally(() => setIsLoading(false))\n }, [])\n )\n\n return (\n \n {isLoading\n ? \n : serviceOrderDetail?.codInterno\n ? \n \n \n \n \n \n \n \n \n \n \n \n : \n }\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n content: {\n marginVertical: 0,\n marginHorizontal: 'auto',\n flex: 1,\n width: '100%',\n backgroundColor: 'rgb(242, 242, 242)'\n }\n})\n","import React from 'react'\nimport { ServiceOrderDetail } from '@/presentation/pages/ServiceOrderDetail'\nimport { makeGetServiceOrderDetail } from '@/main/factories/usecases'\n\nexport const makeServiceOrderDetailFactory = (): JSX.Element => {\n return \n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import { TrackModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingTrackState = atom({\n key: 'isLoadingTrackState',\n default: true\n})\n\nexport const trackState = atom({\n key: 'trackState',\n default: [] as TrackModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n cursor: 'pointer',\n flex: 1,\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'auto',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { TrackModel } from '@/domain/models'\nimport { GetTrackDetails, GetTrackDetailsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Text, HStack, VStack } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\ntype CardTrackProps = {\n track: TrackModel\n getTrackDetails: GetTrackDetails\n}\n\nexport const CardTrack: React.FC = ({ track, getTrackDetails }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const client = getClient()\n const setLoading = useSetRecoilState(isLoadingTrackDetailsState)\n const setDetails = useSetRecoilState(trackDetailsState)\n const setOpenDetail = useSetRecoilState(isOpenTrackDetailsState)\n const handleError = useErrorHandler()\n\n const { codInterno, id, placa } = track\n\n const handleDetails = (codInterno: number): void => {\n const params: GetTrackDetailsParams = {\n codCliente: client.codCliente.toString(),\n codInterno: codInterno.toString()\n }\n\n setLoading(true)\n\n getTrackDetails\n .getDetails(params)\n .then(currentDetails => {\n setDetails(currentDetails)\n setOpenDetail(true)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n return (\n handleDetails(codInterno)}>\n \n \n \n \n {placa &&\n \n {placa}\n \n }\n {\n id &&\n \n {id}\n \n }\n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { TrackDetailsModel, FuelType } from '@/domain/models'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Text, VStack, Loading, Divider, Stack, Button } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\nexport const TrackDetails: React.FC = () => {\n const [details, setDetails] = useRecoilState(trackDetailsState)\n const isLoading = useRecoilValue(isLoadingTrackDetailsState)\n const [isOpen, setOpen] = useRecoilState(isOpenTrackDetailsState)\n const theme = useTheme()\n\n const { isMobile } = useMediaQueries()\n\n const { combustivel, cor, id, modelo, placa, ano } = details\n\n const handleFuelName = {\n [FuelType.Biocombustivel]: 'Biocombustivel',\n [FuelType.Diesel]: 'Diesel',\n [FuelType.Eletrico]: 'Eletrico',\n [FuelType.Etanol]: 'Etanol',\n [FuelType.GNV]: 'GNV',\n [FuelType.Gasolina]: 'Gasolina',\n [FuelType.Hibrido]: 'Hibrido'\n }[combustivel]\n\n const handleClose = (): void => {\n setOpen(false)\n setDetails({} as TrackDetailsModel)\n }\n\n return (\n \n \n {isLoading\n ? \n : \n \n Detalhes do track\n \n\n \n\n \n {placa &&\n \n Placa:\n \n {placa}\n \n }\n {id &&\n \n Id:\n {id}\n }\n \n\n \n {cor &&\n \n Cor:\n \n {cor}\n \n }\n {ano &&\n \n Ano:\n {ano}\n }\n \n\n {modelo &&\n \n Modelo:\n \n {modelo}\n \n }\n {combustivel &&\n \n Combustivel:\n \n {handleFuelName}\n \n \n }\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TrackDetailsModel } from '@/domain/models'\n\nexport const isLoadingTrackDetailsState = atom({\n key: 'isLoadingTrackDetailsState',\n default: false\n})\n\nexport const trackDetailsState = atom({\n key: 'trackDetailsState',\n default: {} as TrackDetailsModel\n})\n\nexport const isOpenTrackDetailsState = atom({\n key: 'isOpenTrackDetailsState',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\nimport { Box, PageHeader, CardList } from '@/presentation/components'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { isLoadingTrackState, trackState } from './atom'\nimport { useRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { GetTrackDetails, GetTrackList, GetTrackParams } from '@/domain/usecases'\nimport { CardTrack, TrackDetails } from '@/presentation/pages/Track/components'\n\ntype TrackProps = {\n getTrackList: GetTrackList\n getTrackDetails: GetTrackDetails\n}\n\nexport const Track: React.FC = ({ getTrackList, getTrackDetails }: TrackProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isLoading, setLoading] = useRecoilState(isLoadingTrackState)\n const [tracks, setTracks] = useRecoilState(trackState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const params: GetTrackParams = {\n codCliente: client.codCliente\n }\n\n getTrackList\n .getTrackList(params)\n .then(setTracks)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n }\n />\n \n \n {\n tracks?.map((track, index) => (\n \n ))\n }\n \n \n \n\n \n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { Track } from '@/presentation/pages/Track'\nimport { makeGetTrackDetailsFactory, makeGetTrackListFactory } from '@/main/factories/usecases'\n\nexport const makeTrackFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenContractDetailsState = atom({\n key: 'isOpenContractDetailsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n bold: {\n fontWeight: '600'\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n }\n})\n","import React from 'react'\nimport { Box, InputField, Text, VStack, CardDetails, HStack } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const CompanyCard: React.FC = () => {\n const { getClient } = useAuth()\n\n const client = getClient()\n\n return (\n \n \n \n Dados Gerais\n \n \n \n Razão Social\n { client.nomeCliente }\n \n \n Fantasia\n { client.fantasia ? client.fantasia : 'Não informado' }\n \n \n CPF/CNPJ\n { client.cpfCnpj }\n \n \n \n \n E-mail\n { client.email ? client.email : 'Não informado' }\n \n \n Telefone\n { client.telefone1 || client.telefone2 ? `${client.telefone1} ${client.telefone2}` : 'Não informado' }\n \n \n Endereço\n {\n `${client.enderecoGeral.endereco}, ${client.enderecoGeral.numero} - ` +\n `${client.enderecoGeral.bairro} - ${client.enderecoGeral.cidade}/${client.enderecoGeral.estado}`\n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, Button, HStack, InputField, Text, VStack, CardRow, CardDetails } from '@/presentation/components'\nimport { useAuth, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenContractDetailsState } from '@/presentation/pages/Contract/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype ContractCardProps = {\n dateAdapter: DateAdapter\n}\n\nexport const ContractCard: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const setOpen = useSetRecoilState(isOpenContractDetailsState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n const numContrato = client.numContrato || ''\n\n return (\n \n \n \n Contrato {numContrato}\n \n \n \n Início\n {dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')}\n \n \n Dia da Cobrança\n {client.diaVencimento}\n \n \n {client.visualizaDetalhesContrato &&\n \n }\n title='Ver Detalhes'\n testID='contract-card-detalhes'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => setOpen(true)}\n />\n \n }\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { Box, Text, ModalBase, VStack, Divider, HStack, Button, CardDetails, CardRow } 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 => (\n \n \n \n {servico.cliSerContDescricao}\n \n \n Quantidade\n {servico.cliSerContQuantidade}\n \n \n Valor Total\n {formatCurrency(servico.cliSerContValor)}\n \n \n Início da Prestação\n \n {dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY') !== '01/01/0001'\n ? dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY')\n : dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')\n }\n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useTheme } from '@/presentation/hooks'\nimport { CompanyCard, ContractCard, ModalContractDetails } from '@/presentation/pages/Contract/components'\nimport { Box, PageHeader, Stack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype ContractProps = {\n dateAdapter: DateAdapter\n}\n\nexport const Contract: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Contract } from '@/presentation/pages/Contract'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeContractFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDebtsYearMenuState = atom({\n key: 'isOpenDebtsYearMenuState',\n default: false\n})\n\nexport type DebtYear = {\n id: number\n descricao: string\n isSelected: boolean\n}\n\nexport const debtsYearState = atom({\n key: 'debtsYearState',\n default: null as unknown as DebtYear[]\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Button, PageHeader, Select } from '@/presentation/components'\nimport { DebtYear, debtsYearState, isOpenDebtsYearMenuState } from '@/presentation/pages/StatementOfDebts/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype StatementOfDebtsProps = {\n openStatementOfDebts: OpenStatementOfDebts\n dateAdapter: DateAdapter\n}\n\nexport const StatementOfDebts: React.FC = ({ openStatementOfDebts, dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isOpenDebtsYearMenu, setOpenDebtsYearMenu] = useRecoilState(isOpenDebtsYearMenuState)\n const [debtsYear, setDebtsYear] = useRecoilState(debtsYearState)\n\n const client = getClient()\n\n const getPossibleDebtsYears = (): void => {\n const currentYear = dateAdapter.today().getFullYear()\n const possibleDebtsYears = []\n\n for (let i = 0; i < 5; i++) {\n const debtYear: DebtYear = {\n id: currentYear - i,\n descricao: `${currentYear - i}`,\n isSelected: false\n }\n\n possibleDebtsYears.push(debtYear)\n }\n\n setDebtsYear(possibleDebtsYears)\n }\n\n const getSelectedDebtYear = (): number => {\n const selectedDebtYear = debtsYear?.find((debt: DebtYear) => debt.isSelected)\n\n return selectedDebtYear ? selectedDebtYear.id : 0\n }\n\n const handleSelectDebtYear = (id: number): void => {\n const updatedDebtsYear = debtsYear.map((debtYear: DebtYear) => {\n if (debtYear.id === id) return { ...debtYear, isSelected: true }\n else if (debtYear.isSelected) return { ...debtYear, isSelected: false }\n\n return debtYear\n })\n\n setDebtsYear(updatedDebtsYear)\n }\n\n const handleOpenStatementOfDebts = (): void => {\n const openParams: OpenStatementOfDebtsParams = {\n codCliente: client.codCliente,\n ano: getSelectedDebtYear()\n }\n\n openStatementOfDebts\n .openPaymentReport(openParams)\n .catch(handleError)\n }\n\n useEffect(() => getPossibleDebtsYears(), [])\n\n return (\n \n \n }\n />\n setOpenDebtsYearMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n \n \n \n setOpenDebtsYearMenu(false)}\n onSelect={(id) => handleSelectDebtYear(id)}\n title={'Selecione o ano da declaração'}\n items={debtsYear}\n />\n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeOpenStatementOfDebts } from '@/main/factories/usecases'\nimport { StatementOfDebts } from '@/presentation/pages/StatementOfDebts'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeStatementOfDebtsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n form: {\n width: '100%',\n paddingHorizontal: 24,\n paddingTop: 24,\n paddingBottom: 24,\n flex: 1\n },\n input: {\n outlineWidth: 0,\n backgroundColor: 'transparent',\n marginTop: 8\n },\n logoArea: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n paddingVertical: 12,\n paddingHorizontal: 24\n },\n title: {\n color: '#FFF',\n flex: 1\n }\n})\n","import { AreaInterest, EntidadeService } from '@/domain/models'\nimport { ProspectRegistrationParams } from '@/domain/usecases'\nimport { atom } from 'recoil'\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 isSendRegistrationState = atom({\n key: 'isSendRegistrationState',\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 from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { ProspectRegistration, ProspectRegistrationParams } from '@/domain/usecases'\nimport { Button, HStack, NavigationPagesProps } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport * as State from '@/presentation/pages/Prospect/components/atoms'\n\ntype RegisterFormProps = NavigationPagesProps & {\n isLoading: boolean\n prospectRegistration: ProspectRegistration\n}\n\nexport const ActionsForm: React.FC = (props) => {\n const { getThemeClient } = useThemeClient()\n const theme = useTheme()\n const { validateCPF, validateCNPJ } = useFormat()\n const notify = useNotify()\n const state = useRecoilValue(State.prospectRegistrationState)\n const selectedInteresetArea = useRecoilValue(State.selectedInterestAreaState)\n const [isLoading, setLoading] = useRecoilState(State.isLoadingProspectRegistrationState)\n const [isSendRegistration, setSendRegistration] = useRecoilState(State.isSendRegistrationState)\n const reset = useResetRecoilState(State.prospectRegistrationState)\n const resetInteresetArea = useResetRecoilState(State.selectedInterestAreaState)\n const errorHandler = useErrorHandler()\n const themeClient = getThemeClient()\n\n const handleRegister = (event: GestureResponderEvent): void => {\n event.preventDefault()\n const errorValidation = documentValidation(state.cpf)\n if (errorValidation) {\n errorHandler(new Error(errorValidation))\n return\n }\n\n setLoading(true)\n\n if (!isValidForm()) {\n setLoading(false)\n return\n }\n\n const params: ProspectRegistrationParams = {\n ...state,\n email: selectedInteresetArea.email,\n codUnidade: selectedInteresetArea.unidade\n }\n\n props.prospectRegistration\n .register(params)\n .then(() => {\n setSendRegistration(true)\n notify.show('Cadastro realizado')\n resetInteresetArea()\n reset()\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n setSendRegistration(false)\n })\n .finally(() => { setLoading(false) })\n }\n\n const isValidForm = (): boolean => {\n if (!selectedInteresetArea.email ||\n !state.nome ||\n !state.cpf ||\n !state.cep ||\n (state.fone && state.fone.length < 9)\n ) {\n return false\n }\n\n return true\n }\n\n const documentValidation = (value: string): string => {\n if (!(value.length <= 14 ? validateCPF(value) : validateCNPJ(value))) {\n return 'Por favor, informe um CPF/CNPJ válido'\n }\n\n if (state.cep.replace(/\\D/g, '').length < 8) {\n return 'Por favor, informe um CEP válido'\n }\n\n return ''\n }\n\n const goToBackLogin = (): void => {\n props.navigation.navigate(NavigationRoute.Login)\n }\n\n return (\n \n }\n title=\"VOLTAR PARA O LOGIN\"\n onPress={goToBackLogin}\n disabled={isLoading}\n />\n\n {!isSendRegistration &&\n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n form: {\n width: '100%',\n paddingHorizontal: 24,\n paddingTop: 24,\n paddingBottom: 24,\n flex: 1\n },\n input: {\n outlineWidth: 0,\n backgroundColor: 'transparent',\n marginTop: 8\n },\n logoArea: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n paddingVertical: 12,\n paddingHorizontal: 24\n },\n uppercase: {\n textTransform: 'uppercase'\n },\n title: {\n color: '#FFF',\n flex: 1\n }\n})\n","import React, { useCallback } from 'react'\nimport { View } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ProspectRegistrationParams } from '@/domain/usecases'\nimport { Text, TextInput, VStack, InputField, Select, Loading } from '@/presentation/components'\nimport { useFormat, useMediaQueries } from '@/presentation/hooks'\nimport { styles } from './styles'\nimport * as State from '@/presentation/pages/Prospect/components/atoms'\nimport * as GeneralState from '@/presentation/components/Atoms'\n\ntype RegisterFormProps = {\n isLoading: boolean\n}\n\nexport const RegisterForm: React.FC = (props) => {\n const { isMobile } = useMediaQueries()\n const { formatDocument, formatCEP } = useFormat()\n const [state, setState] = useRecoilState(State.prospectRegistrationState)\n const [selectedInteresetArea, setSelectedInterestArea] = useRecoilState(State.selectedInterestAreaState)\n const [isOpenAreaIntereset, setOpenAreaInterest] = useRecoilState(State.isOpenInterestAreaState)\n const isSendRegistration = useRecoilValue(State.isSendRegistrationState)\n const prospectConfigs = useRecoilValue(GeneralState.prospectConfigsState)\n const interesetArea = useRecoilValue(GeneralState.prospectInterestAreaState)\n\n const handleChangeInput = useCallback((name: keyof ProspectRegistrationParams, value: string | number): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }, [])\n\n const handleChangeCEPInput = useCallback((value: string): void => {\n setState(currentValues => ({ ...currentValues, cep: formatCEP(value) }))\n }, [])\n\n const handleChangeInputCGC = useCallback((value: string | number): void => {\n const formattedValue = formatDocument(value as string)\n setState(currentValues => ({ ...currentValues, cpf: formattedValue }))\n }, [])\n\n if (isSendRegistration) {\n return (\n \n \n \n \n Cadastro realizado com sucesso!\n \n \n aguarde o contato da empresa para continuar o acesso!\n \n \n \n )\n }\n\n if (props.isLoading) {\n return \n }\n\n return (\n \n \n \n Seja bem-vindo\n \n\n setOpenAreaInterest(true)}\n />\n\n handleChangeInput('nome', text)}\n value={state.nome}\n style={styles.input}\n />\n\n handleChangeInputCGC(text)}\n value={state.cpf}\n maxLength={18}\n style={styles.input}\n />\n\n handleChangeInput('fone', text)}\n value={state.fone}\n style={styles.input}\n />\n\n handleChangeInput('emailUrl', text)}\n value={state.emailUrl}\n style={styles.input}\n />\n\n \n \n Endereço\n \n\n handleChangeCEPInput(text)}\n value={state.cep}\n maxLength={9}\n style={styles.input}\n />\n\n handleChangeInput('endereco', text)}\n value={state.endereco}\n style={styles.input}\n />\n \n handleChangeInput('numeroEndereco', text)}\n value={state.numeroEndereco}\n style={styles.input}\n />\n\n handleChangeInput('complemento', text)}\n value={state.complemento}\n style={styles.input}\n />\n \n \n handleChangeInput('cidade', text)}\n value={state.cidade}\n style={styles.input}\n />\n handleChangeInput('estado', text)}\n value={state.estado}\n style={styles.input}\n inputStyle={styles.uppercase}\n maxLength={2}\n />\n \n handleChangeInput('bairro', text)}\n value={state.bairro}\n style={styles.input}\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}\n","import React, { useEffect } from 'react'\nimport { View } from 'react-native'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { ProspectRegistration } from '@/domain/usecases'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { Text, NavigationPagesProps, LogoTheme, Loading } from '@/presentation/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\nimport { SafeAreaView } from 'react-native-safe-area-context'\nimport { ActionsForm, RegisterForm } from '@/presentation/pages/Prospect/components/'\nimport * as State from '@/presentation/pages/Prospect/components/atoms'\nimport * as GeneralState from '@/presentation/components/Atoms'\n\ntype ProspectProps = NavigationPagesProps & {\n prospectRegistration: ProspectRegistration\n}\n\nexport const Prospect: React.FC = (props) => {\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const prospectConfigs = useRecoilValue(GeneralState.prospectConfigsState)\n const isLoadingRegistration = useRecoilValue(State.isLoadingProspectRegistrationState)\n const isLoadingConfigs = useRecoilValue(GeneralState.isLoadingProspectConfigsState)\n const themeClient = getThemeClient()\n\n useEffect(() => {\n if (prospectConfigs.listaInteresse.length) {\n if (!prospectConfigs.ativo) {\n props.navigation.navigate(NavigationRoute.Login)\n }\n }\n }, [prospectConfigs])\n\n if (isLoadingConfigs || !prospectConfigs) {\n return \n }\n\n return (\n \n \n \n props.navigation.navigate(NavigationRoute.Home)}\n style={[\n styles.title,\n { fontSize: isMobile ? 18 : 20 }\n ]}\n variant='h6'\n >\n Portal do Cliente\n \n \n\n \n \n \n\n \n\n \n )\n}\n","import React from 'react'\nimport { makeProspectRegistration } from '@/main/factories/usecases'\nimport { Prospect } from '@/presentation/pages/Prospect'\nimport { NavigationPagesProps } from '@/presentation/components'\n\nexport const makeProspectFactory = (props: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { createDrawerNavigator } from '@react-navigation/drawer'\nimport { LinkingOptions, NavigationContainer, ParamListBase } from '@react-navigation/native'\nimport { Header, Loading, notificationsState } from '@/presentation/components'\nimport { CustomDrawer } from '../CustomDrawer'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute, screensClientNavigator, screensAdminNavigator } from '@/main/config/router-navigation'\nimport { 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 makeRecoveryPasswordFactory\n} from '@/main/factories/pages'\nimport { SaveNotificationToken, GetClientNotifications } from '@/domain/usecases'\nimport { makeProspectFactory } from '@/main/factories/pages/prospect-factory'\n\nexport type NavigationPagesProps = {\n navigation: {\n navigate: (route: NavigationRoute) => void\n }\n}\n\nconst Drawer = createDrawerNavigator()\n\ntype NavigationDrawerProps = {\n saveNotificationToken: SaveNotificationToken\n getNotifications: GetClientNotifications\n}\n\nexport const NavigationDrawer: React.FC = ({\n saveNotificationToken,\n getNotifications\n}) => {\n const { getThemeClient } = useThemeClient()\n const { getClient, isSignedIn, isAdmin } = useAuth()\n\n const client = getClient()\n const themeClient = getThemeClient()\n const notifications = useRecoilValue(notificationsState)\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 makeNotificationTitle = (page: string): string => {\n const pageLabel = notifications.length ? `(${notifications.length}) ${page}` : page\n return `${pageLabel} - Portal do Cliente`\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.Configs}\n component={makeSettingsFactory} />\n\n ()\n }}\n name={NavigationRoute.ProspectSettings}\n component={makeProspectSettingsFactory} />\n\n ()\n }}\n name={NavigationRoute.EventsSettings}\n component={makeEventsSettingsFactory}\n />\n\n ()\n }}\n name={NavigationRoute.SocialMedia}\n component={makeRedesSociaisFactory}\n />\n \n\n const makeUserPages = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Home}\n component={makeHomeFactory}\n />\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.Financial}\n component={makeFinancialFactory}\n />\n }\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.StatementOfDebts}\n component={makeStatementOfDebtsFactory}\n />\n }\n {RN_SHOW_MENU_OS &&\n ()\n }}\n name={NavigationRoute.ServiceOrders}\n component={makeServiceOrdersFactory}\n />\n }\n {RN_SHOW_MENU_NF &&\n ()\n }}\n name={NavigationRoute.Invoices}\n component={makeNFFactory}\n />\n }\n {RN_SHOW_MENU_CARTAO &&\n ()\n }}\n name={NavigationRoute.CreditCard}\n component={makeCardFactory}\n />\n }\n {RN_SHOW_MENU_TRAVEL &&\n ()\n }}\n name={NavigationRoute.TravelAlert}\n component={makeTravelAlertFactory}\n />\n }\n {RN_SHOW_MENU_ACEITE &&\n ()\n }}\n name={NavigationRoute.DigitalAccepts}\n component={makeAcceptDigitalFactory}\n />\n }\n {RN_SHOW_MENU_MONITORING &&\n ()\n }}\n name={NavigationRoute.Monitoring}\n component={makeEventsFactory}\n />\n }\n {RN_SHOW_MENU_SAC &&\n ()\n }}\n name={NavigationRoute.SAC}\n component={makeSacFactory}\n />\n }\n {RN_SHOW_MENU_RASTREAMENTO &&\n ()\n }}\n name={NavigationRoute.Track}\n component={makeTrackFactory}\n />\n }\n {RN_SHOW_MENU_CONTRACTS &&\n ()\n }}\n name={NavigationRoute.Contract}\n component={makeContractFactory}\n />\n }\n \n\n return (\n }>\n isSignedIn()\n ? \n : undefined\n }}\n drawerContent={props => }\n initialRouteName={isAdmin() ? 'Tema' : 'Home'}\n >\n {isSignedIn()\n ? <>{isAdmin() ? makeAdminPages() : makeUserPages()}\n : makeLogin()\n }\n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Text, ActivityIndicator } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype LoadingProps = {\n text?: string\n}\n\nexport const Loading: React.FC = ({ text }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {!!text &&\n {text}\n }\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '50vh'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { PortalLogout } from '@/domain/usecases'\nimport { useAuth, useTheme } from '@/presentation/hooks'\nimport { Box, Button, ModalBase, Text, isOpenLogoutState } from '@/presentation/components'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype LogoutProps = {\n portalLogout: PortalLogout\n}\n\nexport const Logout: React.FC = ({\n portalLogout\n}) => {\n const theme = useTheme()\n const { logout, getCurrentClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenLogoutState)\n\n const handleLogout = (): void => {\n const codClient = getCurrentClient()\n logout()\n\n if (codClient?.toString().endsWith('@insidesistemas.com.br')) {\n portalLogout\n .logout({ cliente: codClient?.toString().replace('@insidesistemas.com.br', ''), version })\n .catch(console.error)\n } else {\n 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 if (openInIOS) {\n setOpen(true)\n } else {\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\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 { StyleSheet, View, ViewStyle } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Appbar } from 'react-native-paper'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { MessagePayload, onMessage } from '@firebase/messaging'\nimport { messaging } from '@/main/config/firebaseConfig'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Text, LogoTheme, NavigationPagesProps, isOpenUserMenuState, IconButton, Badge, notificationsState, isOpenNotificationsModalState, localStorageState, HStack } from '@/presentation/components'\nimport { ReceivedNotificationModel } from '@/domain/models'\nimport { GetClientNotifications, SaveNotificationToken } from '@/domain/usecases'\n\nexport const APP_BAR_HEIGTH = 64\nexport const PADDING_STATUS_BAR_IOS = 24\n\ntype HeaderProps = {\n saveNotificationToken: SaveNotificationToken\n getNotifications: GetClientNotifications\n} & NavigationPagesProps\n\nexport const Header: React.FC = (props) => {\n const theme = useTheme()\n const { isAdmin, getCurrentClient } = useAuth()\n const { openInPWA, openInIOS, isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [notifications, setNotifications] = useRecoilState(notificationsState)\n const notify = useNotify()\n const setOpenUserMenu = useSetRecoilState(isOpenUserMenuState)\n const setOpenNotificationsMenu = useSetRecoilState(isOpenNotificationsModalState)\n const handleError = useErrorHandler()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const currentClient = getCurrentClient()\n\n const themeClient = getThemeClient()\n const userAdministrator = isAdmin()\n\n const contentTitleStyle: ViewStyle = {\n alignItems: 'flex-start'\n }\n\n if (!isMobile || userAdministrator) {\n contentTitleStyle.alignItems = 'center'\n }\n\n React.useEffect(() => {\n if (!userAdministrator) {\n window.addEventListener('focus', handleSearchNotifications)\n handleSaveNotificationToken()\n\n return () => {\n window.removeEventListener('focus', handleSearchNotifications)\n }\n }\n }, [])\n\n const handleSaveNotificationToken = (): void => {\n const tokenCliente = localStorageAdapter.get(SaveNotificationToken.RN.LOCAL_STORAGE_TOKEN)\n\n if (tokenCliente) {\n props.saveNotificationToken\n .save({\n codigoCliente: +currentClient,\n tokenDispositivo: tokenCliente\n })\n .then(() => { handleSearchNotifications() })\n .catch(handleError)\n } else {\n handleSearchNotifications()\n }\n }\n\n const handleSearchNotifications = React.useCallback((): void => {\n +currentClient > 0 && props.getNotifications\n .get({ codigo: +currentClient })\n .then(setNotifications)\n .catch(handleError)\n }, [currentClient])\n\n const onMessageListener = async (): Promise => {\n await new Promise(() => {\n messaging().then((messagingInstance) => {\n if (messagingInstance) {\n onMessage(messagingInstance, (payload: MessagePayload) => {\n const notification = payload.data as ReceivedNotificationModel\n\n if (notification) {\n handleSearchNotifications()\n\n notify.info(notification.body)\n }\n })\n }\n }).catch(error => {\n console.error('Error getting messaging instance:', error)\n })\n })\n }\n\n if (!userAdministrator && +currentClient > 0) {\n void onMessageListener()\n }\n\n const ContentTitle: React.FC = () => (\n \n \n props.navigation.navigate(NavigationRoute.Home)}\n style={{\n ...styles.title,\n ...(isMobile && { fontSize: 16 })\n }}\n variant='h6'\n >\n Portal do Cliente\n \n \n }\n style={ contentTitleStyle }\n />\n )\n\n return (\n \n }\n onPress={() => props.navigation.toggleDrawer()}\n isLeading\n testID=\"menu-geral\"\n color={themeClient.menuColor}\n />\n \n \n {!isAdmin() && <>\n { setOpenNotificationsMenu(true) }}\n icon={props => }\n />\n {notifications && }\n \n }\n {\n setOpenUserMenu(true)\n }}\n testID=\"menu-usuario\"\n icon={props => }\n />\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 isBackgroundImage?: boolean\n}\n\nconst image = { uri: require('../../../../assets/fundo.png') }\n\nexport function ConfigSlider ({ minimunValue, maximunValue, 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.primaryLighten}\n thumbTintColor={theme.colors.primary}\n />\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'relative'\n },\n themeContainer: {\n height: 200,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n text: {\n color: '#FFFF'\n },\n titleArea: {\n width: 'calc(100% - 16px)',\n position: 'absolute',\n top: 8,\n right: 8,\n left: 8,\n zIndex: 1000,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '95%',\n minHeight: '60vh'\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n title: {\n flex: 1,\n marginTop: '16px'\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Text } from '@react-native-material/core'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype NoResultMessageProps = {\n text?: string\n}\n\nexport const NoResultMessage: React.FC = ({\n text = 'Não há dados para exibir'\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n \n \n {text}\n \n \n \n )\n}\n","import React from 'react'\nimport AntDesignIcon from '@expo/vector-icons/AntDesign'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { HStack, Text, Button } from '@/presentation/components'\n\ntype PageHeaderProps = {\n text: string\n icon: React.ReactNode\n children?: React.ReactNode\n openFilters?: () => void\n}\n\nexport const PageHeader: React.FC = ({\n text,\n children,\n icon,\n openFilters\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {icon}\n {text}\n \n {children}\n {openFilters &&\n }\n color={themeClient.mainColor}\n onPress={openFilters}\n testID='button-filtros'\n />\n }\n \n )\n}\n","import React from 'react'\n\ntype PixIconProps = {\n color: string\n height?: number\n}\n\nexport const PixIcon: React.FC = ({ color, height = 24 }) => {\n return (\n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Divider } from '@react-native-material/core'\nimport { Box } from '@/presentation/components'\n\ntype FooterProps = {\n children: JSX.Element\n}\n\nexport const Footer: React.FC = ({ children }) => {\n return (\n \n \n {children}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 60,\n backgroundColor: '#FFF',\n marginRight: 16,\n marginLeft: 16\n }\n})\n","import { atom } from 'recoil'\n\nexport const logoEmpresaState = atom({\n key: 'logoEmpresaState',\n default: require('../../../../assets/logo-white.svg')\n})\n","import { useTheme } from '@/presentation/hooks'\nimport * as React from 'react'\nimport { Menu } from 'react-native-paper'\n\ntype MenuActionsProps = {\n children: JSX.Element | JSX.Element[]\n onDismiss: () => void\n anchor: React.ReactNode\n visible: boolean\n}\n\nexport const MenuActions: React.FC = ({ children, onDismiss, anchor, visible }) => {\n const theme = useTheme()\n\n return (\n \n {children}\n \n )\n}\n","import React from 'react'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { HStack, Text } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\n\nexport type MessageBlockStatus = 'info' | 'success' | 'error' | 'warning' | undefined\n\ntype LogoutProps = {\n status?: MessageBlockStatus\n message: string\n}\n\nexport const MessageBlock: React.FC = ({\n status = 'info',\n message\n}) => {\n const theme = useTheme()\n\n const colorStatusStyle = {\n info: theme.colors.info,\n success: theme.colors.success,\n error: theme.colors.error,\n warning: theme.colors.secondary\n }[status]\n\n const colorContainerStatusStyle = {\n info: theme.colors.infoContainer,\n success: theme.colors.successContainer,\n error: theme.colors.errorContainer,\n warning: theme.colors.secondaryContainer\n }[status]\n\n return (\n \n \n \n {message}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Modal } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype ModalBaseProps = {\n visible: boolean\n children: React.ReactNode | React.ReactNode[]\n onClose?: () => void\n maxWidth?: number\n maxHeight?: number | string\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const ModalBase: React.FC = ({\n visible,\n onClose,\n children,\n maxHeight,\n maxWidth\n}) => {\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: 10,\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, { useEffect } from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { GetRedesSociais, GetTheme, PortalLogout, GetProspectConfigs, UpdatePassword, GetClientNotifications, SaveNotificationToken } from '@/domain/usecases'\nimport { useProspectSettings, useThemeClient, useFirebaseNotifications } from '@/presentation/hooks'\nimport { InstallationSuggestion, Logout, NavigationDrawer, PhoneModal, SnackBarProvider, UpdatePasswordC, phoneModalNumberState, socialMediaState } from '@/presentation/components'\nimport * as GeneralState from '@/presentation/components/Atoms'\n\ntype RouterProps = {\n getTheme: GetTheme\n getRedesSociais: GetRedesSociais\n getProspectConfigs: GetProspectConfigs\n portalLogout: PortalLogout\n updatePassword: UpdatePassword\n saveNotificationToken: SaveNotificationToken\n getNotifications: GetClientNotifications\n}\n\nconst Router: React.FC = (props) => {\n const { setThemeClient } = useThemeClient()\n const { startConfig } = useProspectSettings()\n const firebaseNotifications = useFirebaseNotifications()\n const setSocialMedia = useSetRecoilState(socialMediaState)\n const setLoadingProspectConfigs = useSetRecoilState(GeneralState.isLoadingProspectConfigsState)\n const setPhoneModal = useSetRecoilState(phoneModalNumberState)\n\n useEffect(() => {\n void (!__DEV__ && window.location.protocol === 'https' && firebaseNotifications.serviceWorkerRegistration())\n\n props.getTheme\n .get()\n .then(setThemeClient)\n .catch(console.error)\n\n props.getRedesSociais\n .getRedesSociais()\n .then((socialMedias) => {\n setSocialMedia(socialMedias)\n setPhoneModal(socialMedias.phone)\n })\n .catch(console.error)\n\n setLoadingProspectConfigs(true)\n props.getProspectConfigs\n .getAll()\n .then(startConfig)\n .catch(console.error)\n .finally(() => { setLoadingProspectConfigs(false) })\n }, [])\n\n return (\n <>\n \n \n \n \n \n \n \n )\n}\n\nexport default Router\n","import { useRecoilValue } from 'recoil'\nimport { getToken } from '@firebase/messaging'\nimport { messaging } from '@/main/config/firebaseConfig'\nimport { localStorageState } from '@/presentation/components'\nimport { useNotify, usePermissions } from '@/presentation/hooks'\nimport { SaveNotificationToken } from '@/domain/usecases'\nimport { makeEnvironmentDecoderAdapterFactory } from '@/main/adapters'\nimport env from '@/main/config/env'\n\ntype FirebaseNotificationsProps = {\n serviceWorkerRegistration: () => Promise\n}\n\nexport const useFirebaseNotifications = (): FirebaseNotificationsProps => {\n const notify = useNotify()\n const permissions = usePermissions()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const environmentDecoder = makeEnvironmentDecoderAdapterFactory()\n\n const firebaseConfig = {\n apiKey: env.FIREBASE_API_KEY,\n authDomain: env.FIREBASE_AUTH_DOMAIN,\n projectId: env.FIREBASE_PROJECT_ID,\n storageBucket: env.FIREBASE_STORAGE_BUCKET,\n messagingSenderId: env.FIREBASE_MESSAGING_SENDER_ID,\n appId: env.FIREBASE_APP_ID,\n firebaseVapiKey: env.FIREBASE_VAPID_KEY\n }\n\n const treatedFirebaseConfig = environmentDecoder.objectDecode(firebaseConfig)\n\n const serviceWorkerRegistration = async (): Promise => {\n const notificationPermission = await permissions.requestNotification()\n let scriptURL = './firebase-messaging-sw.js'\n scriptURL += `?apiKey=${treatedFirebaseConfig.apiKey}`\n scriptURL += `&authDomain=${treatedFirebaseConfig.authDomain}`\n scriptURL += `&projectId=${treatedFirebaseConfig.projectId}`\n scriptURL += `&storageBucket=${treatedFirebaseConfig.storageBucket}`\n scriptURL += `&messagingSenderId=${treatedFirebaseConfig.messagingSenderId}`\n scriptURL += `&appId=${treatedFirebaseConfig.appId}`\n\n if ('serviceWorker' in navigator) {\n try {\n const serviceWorkerRegistration = await navigator.serviceWorker.register(scriptURL)\n notificationPermission.isGranted\n ? await handleGetToken(serviceWorkerRegistration)\n : notify.error(notificationPermission.errorMessage as string)\n } catch (error) {\n console.error(error)\n notify.error(`Falha no registro do Service Worker: ${error as string}`)\n }\n }\n }\n\n const handleGetToken = async (serviceWorkerRegistration: ServiceWorkerRegistration): Promise => {\n try {\n const messagingResolve = await messaging()\n if (messagingResolve) {\n getToken(messagingResolve, {\n vapidKey: treatedFirebaseConfig.firebaseVapiKey,\n serviceWorkerRegistration\n })\n .then((currentToken) => {\n currentToken\n ? localStorageAdapter.set(SaveNotificationToken.RN.LOCAL_STORAGE_TOKEN, currentToken)\n : notify.error('Nenhum token de registro disponível. Solicite permissão para gerar um.')\n })\n .catch(async (error: Error) => {\n if (error.message === \"Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker\") {\n return await handleGetToken(serviceWorkerRegistration)\n }\n notify.error(`Ocorreu um erro ao recuperar o token. Erro: ${error.message}`)\n })\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n return {\n serviceWorkerRegistration\n }\n}\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(console.log)\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) => (\n (!!socialMidias[props] && props !== 'codUnidade') &&\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: {\n codUnidade: 0,\n facebook: '',\n instagram: '',\n twitter: '',\n youtube: '',\n linkedin: '',\n whatsapp: '',\n telegram: '',\n tiktok: '',\n phone: ''\n } as RedesSociaisModel\n})\n","import * as React from 'react'\nimport { GestureResponderEvent, Animated, StyleSheet } from 'react-native'\nimport { useTheme, useNotify, useMediaQueries } from '@/presentation/hooks'\nimport { Button, Snackbar } from '@/presentation/components'\n\nexport type SnackBarProps = {\n id: string\n message: string\n variant?: 'success' | 'error' | 'info' | 'warning'\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 { isMobile } = useMediaQueries()\n const notify = useNotify()\n const fadeAnime = React.useRef(new Animated.Value(0)).current\n const [isOpen, setOpen] = React.useState(true)\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 backgroundColor: theme.colors.info\n },\n success: {\n backgroundColor: theme.colors.success\n },\n error: {\n backgroundColor: theme.colors.error\n },\n warning: {\n backgroundColor: theme.colors.secondary\n }\n }[variant]\n\n return (\n \n }\n style={{\n ...containerStyles,\n ...styles.container,\n width: isMobile ? '100%' : '500px',\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'\nimport { useMediaQueries } from '@/presentation/hooks'\n\nexport function SnackBarProvider (): JSX.Element {\n const messages = useRecoilValue(snackBarProviderState)\n const { isMobile } = useMediaQueries()\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 top: 60,\n paddingTop: 12,\n paddingHorizontal: 24\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: 10\n },\n hidden: {\n display: 'none'\n },\n content: {\n width: '100%',\n backgroundColor: '#FFF'\n },\n title: {\n margin: 12,\n fontSize: 20,\n fontWeight: '500'\n },\n subtitle: {\n marginLeft: 4,\n marginTop: 16,\n marginBottom: 8,\n fontSize: 16,\n fontWeight: '500'\n },\n filters: {\n flex: 1,\n margin: 16\n },\n closeButton: {\n position: 'absolute',\n top: 0,\n right: 12,\n width: 36,\n height: 36\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n inputDatePicker: {\n width: '100%',\n marginTop: 8\n }\n})\n","import * as React from 'react'\nimport { Box, Text, Divider, HStack, Modal, Button, TAB_BOTTOM_CONTAINER_HEIGTH } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { GestureResponderEvent } from 'react-native'\nimport { styles } from './styles'\n\ntype SideFilterDrawerProps = {\n open: boolean\n loading: boolean\n onSubmit: (event: GestureResponderEvent) => void\n onClose: () => void\n resetState: () => void\n children: JSX.Element | JSX.Element[]\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const Drawer: React.FC = ({ open, onSubmit, onClose, children, loading, resetState }) => {\n const theme = useTheme()\n const { isMobile, appBarHeight, width } = useMediaQueries()\n\n const containerStyles = {\n ...styles.modalContainer,\n maxWidth: isMobile ? width - MARGIN_MODALS : 600,\n ...(isMobile\n ? { height: `calc(100vh - ${(appBarHeight + TAB_BOTTOM_CONTAINER_HEIGTH)}px)` }\n : { height: `calc(100vh - ${(appBarHeight + 18)}px)` }),\n ...styles.container,\n padding: isMobile ? 8 : 32,\n margin: isMobile ? 15 : 67\n }\n\n const contentStyles = {\n ...styles.content,\n minWidth: width < 600 ? 'fit-content' : 264\n }\n\n const titleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const btnLimparStyles = {\n ...styles.btnAction,\n color: theme.colors.textsLight\n }\n\n return (\n \n \n \n Filtros\n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\ntype TitleProps = {\n title: string\n}\n\nexport const Title: React.FC = ({ title }) => {\n return (\n {title}\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n maxHeight: 400,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto'\n },\n buttonArea: {\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n buttons: {\n width: '100%',\n marginBottom: 10,\n padding: 3\n }\n})\n","import React from 'react'\nimport { IconButton } from 'react-native-paper'\nimport { Color, TextInputProps } from '@react-native-material/core'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SelectItem = {\n id: number\n descricao: string\n isSelected: boolean\n data?: any\n}\n\nexport type SelectModalProps = {\n title: string\n items: SelectItem[]\n onSelect: (id: number, data: any) => void\n onClose: () => void\n itemsColor?: Color\n isOpen: boolean\n}\n\nexport const Modal: React.FC = ({\n title,\n isOpen,\n items,\n itemsColor,\n onSelect,\n onClose\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n const handleSelect = (id: number, data: any): void => {\n onSelect(id, data)\n onClose()\n }\n\n return (\n \n {title}\n \n {items?.map((item) => (\n handleSelect(item.id, item.data)}\n style={styles.buttons}\n />\n ))}\n \n \n \n \n \n )\n}\n\ntype SelectTriggerProps = {\n label: string\n onOpen: () => void\n description: string\n} & TextInputProps\n\nexport const Trigger: React.FC = ({\n label,\n onOpen,\n description,\n ...TextInputProps\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n }\n {...TextInputProps}\n />\n )\n}\n","import React, { useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { AntDesign } from '@expo/vector-icons'\nimport { IconButton } from 'react-native-paper'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype ScrollToTopButtonProps = {\n scrollToTop: () => void\n targetRef: any\n}\n\nexport const ScrollToTopButton: React.FC = ({ scrollToTop, targetRef }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const options = {\n root: null,\n rootMargin: '60px',\n threshold: 0.25\n }\n\n const observer = new IntersectionObserver((): void => {}, 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 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 React from 'react'\nimport { HStack, Text, VStack } from '@react-native-material/core'\nimport { MaterialIcons, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useTheme } from '@/presentation/hooks'\n\ntype SecurityPasswordProps = {\n minLenght: boolean\n hasLowerCase: boolean\n hasUpperCase: boolean\n hasNumber: boolean\n hasSpecialChar: boolean\n}\n\nexport const SecurityPassword: React.FC = (props) => {\n const theme = useTheme()\n\n return (\n \n \n \n \n Sua senha deve\n \n \n\n \n \n \n ter no mínimo 8 caracteres\n \n \n\n \n \n \n ter no mínimo 1 numero\n \n \n\n \n \n \n ter no mínimo 1 letra maiúscula\n \n \n \n \n \n \n ter no mínimo 1 letra minúscula\n \n \n \n \n \n \n ter no mínimo 1 caractere especial\n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { StyleProps } from 'react-native-reanimated'\n\nexport const styles = StyleSheet.create({\n input: {\n outlineWidth: 0\n }\n})\n","import React from 'react'\nimport { TextInput as Input, TextInputProps } from '@react-native-material/core'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\nexport const TextInput: React.FC = (props: TextInputProps) => {\n const theme = useTheme()\n\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n userTitle: {\n fontWeight: '500',\n textAlign: 'center'\n },\n itemMenu: {\n fontSize: 14\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useAuth } from '@/presentation/hooks'\nimport { Box, Text, ModalBase, isOpenUserMenuState, VStack, Divider, Menu, isOpenLogoutState, isOpenUpdatePasswordState } from '@/presentation/components'\nimport { styles } from './styles'\n\nexport const UserMenu: React.FC = () => {\n const { getClient, isAdmin } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenUserMenuState)\n const setOpenLogout = useSetRecoilState(isOpenLogoutState)\n const setOpenUpdatePassword = useSetRecoilState(isOpenUpdatePasswordState)\n\n const client = getClient()\n\n const handleClose = (): void => setOpen(false)\n\n const handleOpenUpdatePassword = useCallback((): void => {\n handleClose()\n setOpenUpdatePassword(true)\n }, [])\n\n const handleOnLogout = useCallback((): void => {\n handleClose()\n setOpenLogout(true)\n }, [])\n\n return (\n \n \n \n {client?.nomeCliente}\n {client?.cpfCnpj}\n \n \n {!isAdmin() &&\n }\n />\n }\n }\n />\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenMenuServersUrlState = atom({\n key: 'isOpenMenuServersUrlState',\n default: false\n})\n","import * as React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Octicons } from '@expo/vector-icons'\nimport { Box, Button, currentUnitState, HStack, ModalBase, Text, unitsState, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { currentListServerUrlState } from '@/presentation/pages/Theme/components'\nimport { isOpenMenuServersUrlState } from './atom'\n\ntype ServerUrlSelectorProps = {\n disabled: boolean\n}\n\nexport const ServerUrlSelector: React.FC = ({ disabled }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useRecoilState(isOpenMenuServersUrlState)\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitState)\n const units = useRecoilValue(unitsState)\n const currentListServerUrl = useRecoilValue(currentListServerUrlState)\n\n const themeClient = getThemeClient()\n const selectedServerUrl = units?.find(unit => unit.codigo === currentUnit?.codigo)?.enderecoExterno ?? ''\n const sameUrl = window.location.href.substring(0, window.location.href.lastIndexOf('/')) === selectedServerUrl\n\n const handleSelectUnit = (selectedUnit: number): void => {\n const unit = units.find(unit => unit.codigo === selectedUnit)\n unit && setCurrentUnit(unit)\n setMenuOpen(false)\n }\n\n const formatLabelServer = (externalAddress: string): string => {\n if (!externalAddress) { return '' }\n const unitsLabel = units\n .filter(unit => unit.enderecoExterno === externalAddress)\n .map(unit => unit.codigo.toString().padStart(4, '0'))\n\n const externalServerLabel = externalAddress?.replace('https://', '')?.replace('http://', '')\n const unitsDescription = isMobile ? '' : ` | Unidades ${unitsLabel.join(', ')}`\n return `${externalServerLabel}${unitsDescription}`\n }\n\n return (\n \n setMenuOpen(true)}\n loading={disabled}\n loadingIndicatorPosition='overlay'\n title={formatLabelServer(selectedServerUrl)}\n />\n\n {!sameUrl &&\n }\n style={{ margin: 12, borderRadius: 15 }}\n onPress={() => { window.open(`${selectedServerUrl}/portalservice`, '_blank') }}\n />\n }\n\n setMenuOpen(false)}>\n Selecione o Endereço\n\n \n {currentListServerUrl?.map(serverUrl => (\n \n \n {serverUrl.enderecoExterno.replace('https://', '').replace('http://', '')}\n \n \n Unidade{serverUrl.unidades.length > 1 ? 's' : ''}: {serverUrl.unidades.map(unit => unit.toString().padStart(4, '0')).join(', ')}\n \n \n }\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => handleSelectUnit(serverUrl.unidades.at(0))}\n style={{\n width: '100%',\n marginBottom: 10,\n padding: 3\n }}\n />\n ))}\n \n \n setMenuOpen(false)}\n />\n \n \n \n )\n}\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4\n }\n})\n","import { atom } from 'recoil'\n\nexport const isOpenUserMenuState = atom({\n key: 'isOpenUserMenuState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingRecoveryPasswordState = atom({\n key: 'isLoadingRecoveryPasswordState',\n default: false\n})\n\nexport const isOpenRecoveryPasswordState = atom({\n key: 'isOpenRecoveryPasswordState',\n default: true\n})\n\nexport const recoverySettingsState = atom({\n key: 'recoverySettingsState',\n default: {\n cliente: 0,\n novaSenha: '',\n confirmacaoSenha: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect, useRoute } from '@react-navigation/native'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { UpdateDefaultPassword, UpdateDefaultPasswordParams, ValidatePasswordRecovery } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Button, IconButton, Loading, ModalBase, SecurityPassword, showPasswordState, Text, TextInput } from '@/presentation/components'\nimport { isLoadingRecoveryPasswordState, isOpenRecoveryPasswordState, recoverySettingsState } from './atom'\nimport { loginState } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\n\ntype RecoveryPasswordProps = {\n navigation: any\n validatePasswordRecovery: ValidatePasswordRecovery\n updateDefaultPassword: UpdateDefaultPassword\n}\n\nexport const RecoveryPasswordC: React.FC = ({ navigation, validatePasswordRecovery, updateDefaultPassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { isPasswordSecure } = useAuth()\n const [state, setState] = useRecoilState(recoverySettingsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingRecoveryPasswordState)\n const [isOpen, setOpen] = useRecoilState(isOpenRecoveryPasswordState)\n const [showPassword, setShowPassword] = useRecoilState(showPasswordState)\n const setLogin = useSetRecoilState(loginState)\n const params = useRoute().params as { idRecuperacao: string }\n const resetRecoverySettings = useResetRecoilState(recoverySettingsState)\n const resetLogin = useResetRecoilState(loginState)\n const handleError = useErrorHandler(() => { setOpen(false) })\n\n useFocusEffect(\n useCallback(() => {\n if (params?.idRecuperacao) {\n setLoading(true)\n validatePasswordRecovery\n .validate({ idRecuperacao: params?.idRecuperacao })\n .then(clientCode => {\n setState(currentState => ({ ...currentState, cliente: clientCode }))\n setLogin({\n username: clientCode.toString(),\n password: '',\n recoveryEmail: '',\n document: ''\n })\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [params?.idRecuperacao])\n )\n\n const handleUpdatePassword = useCallback((event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const updatePasswordParams: UpdateDefaultPasswordParams = {\n novaSenha: state.novaSenha,\n idRecuperacao: params?.idRecuperacao\n }\n\n updateDefaultPassword\n .changePassword(updatePasswordParams)\n .then(changed => {\n if (changed) {\n notify.show('Senha alterada, a nova senha foi gravada com sucesso')\n resetLogin()\n resetRecoverySettings()\n navigation.navigate(NavigationRoute.Login)\n } else {\n notify.error('Não foi possível alterar a senha, tente novamente')\n }\n })\n .catch(handleError)\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }, [params?.idRecuperacao, state, navigation])\n\n const handleTogglePasswordVisibility = (): void => {\n setShowPassword(currentState => !currentState)\n }\n\n const handleChangeInput = (name: string, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleClose = (): void => {\n setOpen(false)\n navigation.navigate(NavigationRoute.Login)\n }\n\n return (\n \n \n {isLoading\n ? \n : <>\n Alterar senha\n\n handleChangeInput('novaSenha', text)}\n value={state.novaSenha}\n maxLength={30}\n trailing={\n }\n onPress={handleTogglePasswordVisibility}\n />\n }\n />\n\n = 8}\n hasLowerCase={/[a-z]/.test(state.novaSenha)}\n hasUpperCase={/[A-Z]/.test(state.novaSenha)}\n hasNumber={/\\d/.test(state.novaSenha)}\n hasSpecialChar={/[!@#$%^&*(),.?\":{}|<>]/.test(state.novaSenha)}\n />\n\n handleChangeInput('confirmacaoSenha', text)}\n value={state.confirmacaoSenha}\n maxLength={30}\n />\n\n \n \n \n \n \n }\n \n \n )\n}\n","import { UpdatePasswordParams } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenUpdatePasswordState = atom({\n key: 'isOpenUpdatePasswordState',\n default: false\n})\n\nexport const showPasswordState = atom({\n key: 'showPasswordState',\n default: false\n})\n\nexport const isLoadingUpdatePasswordState = atom({\n key: 'isLoadingUpdatePasswordState',\n default: false\n})\n\nexport type UpdateSettingsStateProps = UpdatePasswordParams & {\n isLoading: boolean\n confirmacaoSenha: string\n}\n\nexport const updateSettingsState = atom({\n key: 'updateSettingsState',\n default: {\n cliente: 0,\n senhaAtual: '',\n novaSenha: '',\n confirmacaoSenha: ''\n }\n})\n\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\nimport { KEY_ACCESS_PASSWORD, useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Button, HStack, IconButton, Loading, localStorageState, ModalBase, SecurityPassword, Text, TextInput } from '@/presentation/components'\nimport { UpdateSettingsStateProps, isLoadingUpdatePasswordState, isOpenUpdatePasswordState, updateSettingsState, showPasswordState } 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, isPasswordSecure, logout } = useAuth()\n const handleError = useErrorHandler()\n const [isLoading, setLoading] = useRecoilState(isLoadingUpdatePasswordState)\n const [showPassword, setShowPassword] = useRecoilState(showPasswordState)\n const [state, setState] = useRecoilState(updateSettingsState)\n const [isOpen, setOpen] = useRecoilState(isOpenUpdatePasswordState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n\n const client = getClient()\n\n const handleUpdatePassword = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n if (!isPasswordSecure(state.novaSenha)) {\n notify.error('A senha informada é insegura, a senha deve conter no mímino 6 caracteres, possuir letrar maiúsculas e minúsculas, carácter especial e números')\n }\n\n setLoading(true)\n\n const updatePasswordParams: UpdatePasswordParams = {\n cliente: client.codCliente,\n novaSenha: state.novaSenha,\n confirmacaoSenha: state.confirmacaoSenha\n }\n\n updatePassword\n .update(updatePasswordParams)\n .then(changed => {\n localStorageAdapter.set(KEY_ACCESS_PASSWORD, undefined)\n if (changed) {\n notify.show('Senha alterada, a nova senha foi gravada com sucesso')\n } else {\n notify.error('Não foi possível alterar a senha, tente novamente')\n }\n })\n .catch(handleError)\n .finally(() => {\n setOpen(false)\n setLoading(false)\n handleReset()\n setLoading(false)\n })\n }\n\n const handleTogglePasswordVisibility = (): void => {\n setShowPassword(currentState => !currentState)\n }\n\n const handleChangeInput = (name: keyof UpdateSettingsStateProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleClose = (): void => {\n notify.error('A senha atual não atende os requisitos mínimos de segurança, sessão encerrada!')\n logout()\n setOpen(false)\n setLoading(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 {!client\n ? \n : \n Alterar Senha\n\n \n \n \n A senha atual não atende aos requisitos mínimos de segurança\n \n \n\n handleChangeInput('novaSenha', text)}\n value={state.novaSenha}\n maxLength={30}\n trailing={\n }\n onPress={handleTogglePasswordVisibility}\n />\n }\n />\n\n = 8}\n hasLowerCase={/[a-z]/.test(state.novaSenha)}\n hasUpperCase={/[A-Z]/.test(state.novaSenha)}\n hasNumber={/\\d/.test(state.novaSenha)}\n hasSpecialChar={/[!@#$%^&*(),.?\":{}|<>]/.test(state.novaSenha)}\n />\n\n handleChangeInput('confirmacaoSenha', text)}\n value={state.confirmacaoSenha}\n maxLength={30}\n />\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 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 if (!phoneNumber) {\n return null\n }\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 { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n marginBottom: 8,\n paddingRight: 8\n },\n buttonArea: {\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n buttons: {\n marginBottom: 10,\n padding: 3\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { Box, Button, ModalBase, Text, isOpenNotificationsModalState, notificationsState, NotificationCard, VStack, HStack, authenticationState, localStorageState } from '@/presentation/components'\nimport { useErrorHandler, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ChangeTokenNotificationsStatus, DeleteNotification, SaveNotificationToken } from '@/domain/usecases'\nimport { styles } from './styles'\n\ntype NotificationsModalProps = {\n deleteNotification: DeleteNotification\n changeNotificationStatus: ChangeTokenNotificationsStatus\n}\n\nexport const NotificationsModal: React.FC = ({ deleteNotification, changeNotificationStatus }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const [isOpen, setIsOpen] = useRecoilState(isOpenNotificationsModalState)\n const [notifications, setNotifications] = useRecoilState(notificationsState)\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n const tokenCliente = localStorageAdapter.get(SaveNotificationToken.RN.LOCAL_STORAGE_TOKEN)\n\n const themeClient = getThemeClient()\n\n const handleMarkAsRead = (notificationKey: number): void => {\n deleteNotification\n .delete({ codigo: notificationKey })\n .then(() => {\n setNotifications((currentState) =>\n currentState.filter((notification) => notification.codInterno !== notificationKey)\n )\n })\n .catch(handleError)\n }\n\n const handleChangeNotificationsStatus = (): void => {\n changeNotificationStatus\n .change({ tokenDispositivo: tokenCliente })\n .then(() => {\n setAuthentication((currentState) => ({\n ...currentState, client: { ...currentState.client, recebeNotificacoes: !currentState.client?.recebeNotificacoes }\n }))\n })\n .catch(handleError)\n }\n\n return (\n { setIsOpen(false) }}>\n \n Notificações\n {tokenCliente &&\n }\n color={autentication.client?.recebeNotificacoes ? theme.colors.greyLight : themeClient.mainColor}\n variant={autentication.client?.recebeNotificacoes ? 'outlined' : 'contained'}\n title={autentication.client?.recebeNotificacoes ? 'DESATIVAR' : 'ATIVAR'}\n onPress={() => { handleChangeNotificationsStatus() }}\n />\n }\n \n\n \n {notifications.length\n ? notifications?.map((notification) => (\n \n ))\n : \n \n Você está atualizado com as últimas notificações!\n \n }\n \n \n { setIsOpen(false) }}\n />\n \n \n )\n}\n","import { NotificationOnDBModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isOpenNotificationsModalState = atom({\n key: 'isOpenNotificationsModalState',\n default: false\n})\n\nexport const notificationsState = atom({\n key: 'notificationsState',\n default: []\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardBase: {\n display: 'flex',\n borderRadius: 10\n },\n cardContent: {\n display: 'flex',\n gap: 8\n }\n})\n","import React from 'react'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { NotificationOnDBModel } from '@/domain/models'\nimport { Button, Card, Chip, HStack, IconButton, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype NotificationCardProps = {\n notification: NotificationOnDBModel\n onMarkAsRead: (notificationKey: number) => void\n}\n\nexport const NotificationCard: React.FC = ({ notification, onMarkAsRead }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n const pageColor = {\n [NavigationRoute.Financial]: '#ed7809',\n [NavigationRoute.ServiceOrders]: '#14a10a',\n [NavigationRoute.SAC]: '#cf0707',\n [NavigationRoute.Invoices]: '#d6ba06',\n [NavigationRoute.Monitoring]: '#08a8dd',\n [NavigationRoute.CreditCard]: '#5209fb',\n [NavigationRoute.DigitalAccepts]: '#0a41ae',\n [NavigationRoute.TravelAlert]: '#9b0aae',\n [NavigationRoute.PhoneUtils]: '#05d3b7',\n [NavigationRoute.DocumentsUtils]: '#d7fb09',\n [NavigationRoute.Track]: '#0bfc03',\n [NavigationRoute.Contract]: '#fc4850'\n }[notification.screen]\n\n const screenName = {\n [NavigationRoute.Financial]: 'Financeiro',\n [NavigationRoute.ServiceOrders]: 'Ordens de Serviço',\n [NavigationRoute.SAC]: 'SAC',\n [NavigationRoute.Invoices]: 'Notas Fiscais',\n [NavigationRoute.Monitoring]: 'Monitoramento',\n [NavigationRoute.CreditCard]: 'Cartão',\n [NavigationRoute.DigitalAccepts]: 'Aceites Digitais',\n [NavigationRoute.TravelAlert]: 'Aviso de Viagem',\n [NavigationRoute.Track]: 'Rastreamento',\n [NavigationRoute.Contract]: 'Contrato'\n }[notification.screen]\n\n return (\n \n \n \n \n \n \n \n {notification.dataEnvio}\n \n {notification.body}\n \n {isMobile\n ? }\n title={'MARCAR LEITURA'}\n variant='text'\n color={theme.colors.success}\n onPress={() => { onMarkAsRead(notification.codInterno) }}\n />\n : }\n style={{ backgroundColor: theme.colors.successContainer }}\n onPress={() => { onMarkAsRead(notification.codInterno) }}\n />\n }\n \n \n \n )\n}\n","export 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})\n","import { atom } from 'recoil'\n\nexport const isOpenMenuUnitsState = atom({\n key: 'isOpenMenuUnitsState',\n default: false\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Unidade } from '@/domain/models'\nimport { Box, Button, currentUnitState, Select, unitsState } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenMenuUnitsState } from './atom'\n\ntype UnitsSelectorProps = {\n disabled: boolean\n}\n\nexport const UnitsSelector: React.FC = (props) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useRecoilState(isOpenMenuUnitsState)\n const [currentUnit, setCurrentUnit] = useRecoilState(currentUnitState)\n const units = useRecoilValue(unitsState)\n\n const themeClient = getThemeClient()\n\n const handleSelectUnit = (selectedUnit: Unidade): void => {\n setCurrentUnit(selectedUnit)\n setMenuOpen(false)\n }\n\n return (\n \n setMenuOpen(true)}\n loading={props.disabled || !currentUnit}\n loadingIndicatorPosition='overlay'\n title={currentUnit?.codigo?.toString().padStart(4, '0')}\n />\n setMenuOpen(false)}\n items={units?.map(unit => ({\n id: unit.codigo,\n descricao: `${unit.codigo.toString().padStart(4, '0')} - ${unit.nome}`,\n data: unit,\n isSelected: unit.codigo === currentUnit?.codigo\n }))}\n onSelect={(_, unit) => { handleSelectUnit(unit) }}\n />\n\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, NotificationsModal } from '@/presentation/components'\nimport { makeGetRedesSociais, makeGetTheme, makePortalLogout, makeGetProspectConfigs, makeUpdatePassword, makeSaveNotificationToken, makeGetClientNotifications, makeDeleteNotification, makeChangeTokenNotificationsStatus } from '@/main/factories/usecases'\nimport clarityStart from '@/main/config/clarity'\nimport env from '@/main/config/env'\nregisterTranslation('pt-BR', pt)\n\n!__DEV__ && clarityStart(window, document, 'clarity', 'script', env.CLARITY_KEY)\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}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent'\n\nimport App from './App'\n\nregisterRootComponent(App)\n"],"sourceRoot":""}