{"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/adapters/environment-encoder-adapter.ts","src/infra/adapters/environment-decoder-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.ts","src/infra/cache/local-storage-adapter.ts","src/main/factories/cache/local-storage-adapter-factory.ts","src/domain/errors/invalid-credential-error.ts","src/domain/errors/invalid-relation-company-error.ts","src/domain/errors/unexpected-error.ts","src/domain/errors/unexpected-result-format-error.ts","src/domain/errors/access-denied-error.ts","src/domain/errors/forbidden-error.ts","src/domain/errors/result-without-records-error.ts","src/domain/errors/same-password-error.ts","src/domain/errors/not-found-error.ts","src/data/usecases/login/remote-authentication/remote-authentication.ts","src/data/usecases/login/remote-authentication-admin/remote-authentication-admin.ts","src/data/usecases/login/remote-get-user-by-document/remote-get-user-by-document.ts","src/data/usecases/login/remote-forgot-password/remote-forgot-password.ts","src/data/usecases/login/remote-portal-logout/remote-portal-logout.ts","src/data/usecases/login/remote-metrics-login/remote-metrics-login.ts","src/data/usecases/login/remove-metrics-logoff/remote-metrics-logoff.ts","src/data/usecases/login/remote-get-client-by-code/remote-get-client-by-code.ts","src/data/usecases/login/remote-get-client-contract/remote-get-client-contract.ts","src/data/usecases/login/remote-update-password/remote-update-password.ts","src/data/usecases/login/remote-update-default-password/remote-update-default-password.ts","src/data/usecases/login/remote-validate-password-recovery/remote-validate-password-recovery.ts","src/data/usecases/credit-card/get-credit-card/remote-get-credit-card.ts","src/data/usecases/credit-card/save-credit-card/remote-save-credit-card.ts","src/data/usecases/credit-card/pay-with-credit-card/remote-pay-with-credit-card.ts","src/data/usecases/financial/get-tickets/remote-get-tickets.ts","src/data/usecases/financial/get-ticket-pix/remote-get-ticket-pix.ts","src/data/usecases/financial/generate-bank-slip/remote-generate-bank-slip.ts","src/data/usecases/financial/generate-inside-bank-slip/remote-generate-inside-bank-slip.ts","src/data/usecases/financial/open-bank-slip/remote-open-bank-slip.ts","src/data/usecases/financial/open-statement-of-debts/remote-open-statement-of-debts.ts","src/data/usecases/settings/get-theme/remote-get-theme.ts","src/data/usecases/settings/get-unit-config/remote-get-unit-config.ts","src/data/usecases/settings/get-units/remote-get-units.ts","src/data/usecases/settings/get-prospect-configs/remote-get-prospect-configs.ts","src/data/usecases/settings/save-theme/remote-save-theme.ts","src/data/usecases/settings/save-unit-config/remote-save-unit-config.ts","src/data/usecases/settings/prospect-registration/remote-prospect-registration.ts","src/data/usecases/settings/test-email/remote-test-email.ts","src/data/usecases/settings/upload-file/remote-upload-file.ts","src/data/usecases/settings/save-prospect-config/remote-save-prospect-configs.ts","src/data/usecases/settings/get-events-settings/remote-get-events-settings.ts","src/data/usecases/settings/show-events/remote-show-events.ts","src/data/usecases/settings/get-sigma-desk-connections/remote-get-sigma-desk-connections.ts","src/data/usecases/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/authentication-admin-factory.ts","src/main/factories/usecases/login/get-client-by-code-factory.ts","src/infra/adapters/jwt-adapter.ts","src/infra/adapters/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.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/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/main/factories/cache/universal-cookie-adapter-factory.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/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","EnvironmentEncoderAdapter","_createClass","_classCallCheck","key","value","Buffer","from","toString","EnvironmentDecoderAdapter","replace","inputObject","resultObject","Object","prototype","hasOwnProperty","call","this","decode","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","universalCookies","Cookies","UniversalCookieAdapter","set","path","remove","get","LocalStorageAdapter","localStorage","setItem","JSON","stringify","removeItem","getItem","parse","undefined","makeLocalStorageAdapter","InvalidCredentialsError","_Error","message","_this","_callSuper","_inherits","_wrapNativeSuper","InvalidRelationCompany","UnexpectedError","UnexpectedResultFormatError","AccessDeniedError","ForbiddenError","ResultWithoutRecordsError","SamePasswordError","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","dataParams","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","_objectWithoutProperties","_excluded","formatExpiration","expiration","currentYear","Date","getFullYear","RemotePayWithCreditCard","_pay","duplicata","cartao","notAcceptable","RemoteGetTickets","_get","RemoteGetTicketPix","_getPix","_params$pixUrl","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","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","emailRequester","phone1Requester","telefone1","phone2Requester","telefone2","addResponsibles","chavesSomenteComCentral","responsaveisChave","addAuthorized","possuiAutorizados","autorizados","addVehicles","possuiVeiculosCuidadosCentral","veiculos","addRecommendations","recomendacoes","build","cliente","empresa","modalidade","RemoteGetServiceOrders","RemoteGetOsAttendance","_getAttendences","RemoteGetServiceOrderDetail","_getDetail","RemoteGetRedesSociais","_getRedesSociais","RemoteSaveRedesSociais","RemoteGetAcceptDigital","RemoteOpenUrlDocAccept","_view","statusAceite","urlAceite","hash","indexOf","enviarEmail","certificadoHtml","Blob","type","html","URL","createObjectURL","RemoteOpenDocumentAccept","codigoAceite","RemotePrintEvents","_print","tipoConexao","oldUrlIndex","toLowerCase","newUrl","RemoteGetRemotyEvents","_getEvents","eventsRaw","events","remotyEvent","_remotyEvent$event","_remotyEvent$event2","_remotyEvent$event3","evento","event","codEvent","nmEvent","dataEvento","dtEventFormatted","aux","idEvent","nmPanelUser","RemoteGetRemotySectors","_getSectors","sectors","sector","nome","nmZone","idEquipamento","idEquipmentZone","codZone","ativo","flActive","RemoteGetRemotyUserEvents","_getUsers","maptoGeneric","users","user","nmUserPassword","RemoteGetRemotyContacts","_getContacts","contacts","contact","idUsuario","idDevice","nomeUsuario","nmDeviceUser","fone1","nmDevicePhone","fone2","nmDevicePhone2","idDispositivo","deviceGroup","idDeviceGroup","nomeDispositivo","nmDeviceGroup","RemoteGetMoniEvents","codigoOcorrencia","ocorrencia","format","dataHora","RemoteGetMoniSectors","sectorsRaw","equipamento","codigoZona","RemoteGeMoniUsersEvents","usersRaw","codCliente","dddFone","dddCelular","celular","RemoteGetSowillEvents","IdCliente","idCliente","codInternoChave","dateTimeInicioManutencao","sowillEvent","description","account","RemoteGetSowillSectors","_getZones","CodInternoChave","numeroSerie","observacao","auxiliar","RemoteGetSowillUsers","_user$nroUserSistema","usuarioAlarme","nroUserSistema","RemoteGetSowillKeys","_getKeys","RemoteGetSowillIdentifier","_getIdentifier","RemoteGetSigmaEvents","sigmaEvent","RemoteGetSigmaCloudSectors","descProduto","idEvento","cdCliente","cdEvento","obs","RemoteGetSigmaCloudUsers","usuarios","RemoteGetSigmaCloudKeys","RemoteGetSigmaDeskSectors","_getSector","RemoteGetSigmaDeskContacts","idFuncao","descFuncao","RemoteGetSacList","RemoteCreateSac","_create","sacParams","isPortal","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","makeAuthenticationAdmin","identificadorAplicação","makeGetClientByCode","JwtAdapter","jwt_decode","moment","locale","MomentDateAdapter","diff","startOf","date","toDate","dateFormat","days","initDate","subtract","years","add","month","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","currentClient","sub","loginWithCode","test","endsWith","login","currentState","registerLogin","logout","client","getCurrentClient","getClient","accessTokenDecode","codeClient","nomeCliente","isNaN","isSignedIn","_autentication$access","_autentication$access2","expireDate","auth","iss","roles","every","role","setUTCSeconds","exp","isExpired","hadAccessToken","version","catch","console","isPasswordSecure","password","hasUpperCase","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","cardContainerMobile","cardContent","FinancialSettings","getThemeClient","useThemeClient","setFinancialConfig","_useState","useState","initialFinancialConfigs","themeClient","handleChange","param","Box","ScrollView","_Fragment","permitePagamentoCartao","CardSwitch","text","boletoInside","validaCartaoCredito","handleSwitch","atualizaAutomaticoCartao","visualizaFaturaCartaoVencida","bolEntradaConfirmada","bolExibeOriginal","bolAtualizaBoletos","PaymentAvailableToUpdate","bolOcultaFormasPgto","HidePaymentMethods","exibeAlteracaoCartao","TextInput","mode","activeUnderlineColor","mainColor","label","underlineColorAndroid","underlineColor","emailAlteracaoCartao","onChangeText","maxLength","pagamentoCartaoAtivo","Loading","initialGeneralConfigsState","hasErrorGeneralConfigState","GeneralSettings","testEmail","setGeneralConfig","_useRecoilState3","_useRecoilState4","initialGeneralConfigs","setInitialGeneralConfigs","_useRecoilState5","_useRecoilState6","hasError","setError","useEffect","hasChanged","EmailSendingTester","copia","enviaEmailViagem","emailViagem","readonly","emailSac","exibeChavesAvisoViagem","visualizaDetalhesContrato","limiteDiasVisualizaCritica","dias","bloqueiaInativos","_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","size","Text","InvoicesSettings","setInvoiceConfig","initialInvoiceConfigs","handleChangeConfig","nfsOcultarInfos","nfsOcultarLink","ServiceOrderSettings","setServiceOrderConfig","initialServiceOrderConfigs","utilizaEmpresaPadrao","empresaPadraoOS","exibirOsFechadas","osSemTecnico","limitaOs","abrirOsSemFaturamento","osEmpresaPadrao","exibeMensagemAbrirOs","mensagemAberturaOs","enviarAvisoAberturaOs","emailOs","generalContainer","alignItems","selectorContainer","width","selectorContainerMobile","selectBox","selectBoxMobile","titleBox","textAlign","fontWeight","fontSize","optionBox","optionSelectorChip","border","cursor","optionIcon","optionText","overflow","whiteSpace","textOverflow","tooltip","isMobile","useMediaQueries","setFinancialConfigs","handleChoosePaymentForm","codFormaPagamento","update","formasPagamentoAtualiza","formasPagamentoNaoAtualiza","formaPagamentoSelecionada","formaPagamento","Number","filter","concat","_toConsumableArray","newConfig","assign","onDrag","dataTransfer","setData","onDrop","getData","handleClick","acceptDrop","preventDefault","onDragOver","draggable","onDragStart","onClick","MaterialCommunityIcons","item","hide","formasPagamento","formasPagamentoOculta","formasPagamentoOcultas","MenuAccessPermissions","setMenuAccessPermissionsConfig","initialMenuAccessPermissionsConfigs","handleChangeSetting","aceiteDigital","contrato","documentosUteis","boleto","notaFiscal","monitoramento","os","rastreamento","sac","telefonesUteis","viagem","gap","buttonArea","ModalOnDiscardChanges","isOpen","setOpen","discardChanges","useSettings","handleClose","ModalBase","visible","onClose","shadow","show","isOpenSaveOrDiscardConfigState","isLoadingSaveOrDiscardConfigState","ModalOnSaveOrDiscard","saveUnitConfig","currentConfig","isLoading","setLoading","setInitialConfigs","save","hasUpdated","uniCodigo","padStart","isLoadingSaveConfigState","flexWrap","ModalOnSaveChanges","_useSettings","startConfig","isValidMail","handleSaveChanges","errors","push","generalConfigValidation","initialConfigs","setGeneralConfigs","setInvoiceConfigs","setServiceOrderConfigs","setMenuAccessPermissionsConfigs","mail","assuntoEmailConfirmacaoPgto","mensagemSMSConfirmacaoPgto","mensagemEmailConfirmacaoPgto","uniUnidade","emailAlteracaoCadastro","chaveResidencia","exibeAlteracaoCadastro","conPorCodigo","servidorSmtp","autentica","senha","porta","ssl","leitura","enviaListaChave","exibeAvisoAberturaOs","avisoAberturaOs","Dimensions","height","openInPWA","matchMedia","matches","openInIOS","navigator","userAgent","appBarHeight","APP_BAR_HEIGTH","PADDING_STATUS_BAR_IOS","useFormat","formatCurrency","amount","Intl","NumberFormat","currency","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","log","values","modalOnSaveChangeThemeState","firstRecording","setOpenDiscardChanges","setOpenSaveChanges","input","outlineWidth","inputColor","ColorPicker","setThemeClient","inputStyle","editable","onChange","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","unidade","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","lineHeight","Chip","containerStyle","textStyle","_ref$variant","containerStyles","filled","outlined","textStyles","ChipPaper","testID","ChipFilter","subtitle","paddingHorizontal","paddingVertical","cardBase","CardBase","shadowOpacity","Content","CardList","containerMobile","textLoading","isEmpty","NoResultMessage","textEmpty","flexGrow","_ref$showIfValueFalsy","showIfValueFalsy","themeCliente","showChildren","cardContentHeader","Switch","onValueChange","cardChildren","marginVertical","marginHorizontal","paddingLeft","paddingRight","DatePicker","initYear","finalYear","INITIAL_YEAR","useMemo","FINAL_YEAR","DatePickerInput","inputMode","startYear","endYear","withDateFormatInLabel","inputEnabled","CustomDrawer","socialMidias","socialMediaState","DrawerContentScrollView","contentContainerStyle","paddingTop","DrawerItemList","pv","SocialMidias","NavigationRoute","handleScreenPath","screen","screensClientNavigator","_screensClientNavigat","Home","Prospect","Financial","Invoices","SAC","DigitalAccepts","ServiceOrders","CreditCard","TravelAlert","PhoneUtils","DocumentsUtils","Monitoring","Track","OsDetail","Contract","StatementOfDebts","ChangePassword","RecoveryPassword","screensAdminNavigator","Login","Theme","Configs","SocialMedia","ProspectSettings","footer","RedesSociais","saveRedesSociais","getRedesSociais","state","setState","useFocusEffect","res","prevState","leading","Icon","as","whatsapp","facebook","linkedin","instagram","tiktok","telegram","Footer","saveParams","youtube","makeRedesSociaisFactory","textTransform","Tab","createMaterialTopTabNavigator","Settings","getUnitConfigs","getUnits","currentUnit","setCurrentUnit","setUnits","getAll","at","getConfigParams","codUnidade","SafeAreaView","UnitsSelector","Navigator","screenOptions","tabBarItemStyle","tabBarLabelStyle","tabBarIndicatorStyle","tabBarStyle","Screen","tabBarLabel","component","makeSettingsFactory","layoutStyles","pageContent","scroll","paddingBottom","footerContainer","toolbar","_units$find","getTheme","getVersions","_useThemeClient","logoEmpresa","setLogoEmpresa","hasExternalServerUrl","handleGetTheme","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","setString","linhaDigitavel","handleOpenPDFBankSlip","nossoNumero","novaVersao","openPDF","handleOpenPix","statusColor","paga","vencida","venceHoje","situacao","textStatusStyles","amountStyles","makeTags","saldo","atraso","makeOpened","IconButton","PixIcon","CopyIcon","handleOpenTicketView","valorDuplicata","CreditCardItem","_ref$isEditable","creditCardSelectedState","creditCardSelected","setCreditCardSelected","PayCreditCards","_creditCardSelected$n","_client$listaCartoes","payWithCreditCard","isPaymentConfirmation","setPaymentConfirmation","isLoadingCreditCardsState","isOpenCreditCardsState","setOpenOtherCreditCard","ticketView","listaCartoes","valorAtualizado","maxHeight","pay","FiltersChipPanel","isOpenFinancialFiltersState","filters","ticketsFiltersState","period","dataInicio","dataFim","situation","Todas","Pagas","ModalTicketPix","_ticket$numero","_ticket$numero$padSta","_ticket$numero2","getTicketPix","selectedTicketPix","isLoadingTicketPixState","pix","setPix","setTicket","isHttps","location","protocol","handleGetPix","codInternoDuplicata","getPix","QRCodeSvg","logoSize","logoBackgroundColor","nativeID","selectTextOnFocus","getElementById","focus","SideFilters","getTickets","setFilters","errorHandler","setTickets","yearsAgo","daysLater","handleChangeDate","field","currentFilters","SideFilter","Drawer","onSubmit","paramsGetTicket","dataInicial","dataFinal","resetState","daysAgo","SelectStatusTicketFilter","statusTicket","statusTicketState","statusOption","RadioButton","Item","selectedStatus","labelStyle","_id","TicketActions","setOpenTicketViewState","isLoadingTicketViewState","setOpenCreditCards","permiteCartaoCredito","dupProtestada","INFO_INSIDE_SLIP_BANK","TicketView","_ticketView$nomeForma","_ticketView$nomeForma2","_ticketView$nomeForma3","_ticketView$nomeForma4","isPayCreditCard","setPayCreditCard","daysOfArrears","colorSituationStyle","titleSituation","styleStatusSituation","descriptionSituation","dataPagamento","valorPago","descriptionInsideSlipBank","dataEmissao","nomeFormaPagto","trim","_tickets$find","refreshing","setRefreshing","tickets","scrollViewRef","useRef","RN_TOTAL_ITEMS_SHOW","currentTicket","getMonth","orderTickets","paraGetTickets","scrollToTop","scrollTo","y","animated","handleOnFilter","ref","refreshControl","RefreshControl","onRefresh","openFilters","ScrollToTopButton","targetRef","makeFinancialFactory","navigation","TabBottomNavigator","LogoTheme","logoEmpresaState","isSvg","src","isOpenUserSelect","usersSelectState","isOpenForgotPasswordState","loginState","recoveryEmail","ModalForgotPassword","forgotPassword","handleCloseModal","currentValues","documento","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","toLocaleLowerCase","loginWithAdministrator","Email","Senha","loginWithDocument","getUser","getUsersByDocument","clients","_x2","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","CardNfse","nfse","openNfse","nfsConfigs","currentIndex","setCurrentIndex","isLoadingOpenNfse","setLoadingOpenNfse","handleOpenNfse","nf","openNfseParams","codEmpresa","numeroRPS","notaNumero","serieRps","notaSerie","notaNumeroNFSE","openMenu","linkConsultaNotaPortal","ActivityIndicator","notaValor","notaData","isOpenNfsFiltersState","nfsFiltersState","cardArea","emptyNf","LeaseReceipt","openLeaseReceipt","leaseReceipts","_React$useState","React","_React$useState2","setOpenFilters","closeMenu","handleOpenLeaseReceipt","recibo","openLeaseReceiptParams","codigoRecibo","nfNumeroNota","toLocaleDateString","NFProduct","openDanfe","nfs","handleOpenDanfe","openDanfeParams","notaProcNFE","getNFs","setNFsConfigs","setNFs","setNFSs","setLeaseReceipts","initFilters","nfResult","arrRecibos","arrNF","arrNFS","NotaFiscal","getNFsParams","NFService","makeNFFactory","sacState","listaReclamacoes","listaTipoAtendimento","CardSac","_listaTipoAtendimento","_listaTipoAtendimento2","E","R","S","sacType","reclamante","codReclamacao","reclamacao","ModalNewSac","createSac","sacNewState","newSac","setNewSac","setSacs","isLoadingNewSacState","isOpenNewSacState","successNewSac","resetNewSac","tipoDescricao","typeDescription","dateParam","hora","dataAcaoImediata","dataAcaoCorretiva","btnContainer","Sac","_sacs$listaReclamacoe","_sacs$listaReclamacoe2","getSacList","sacs","setOpenNewSac","makeSacFactory","sigmaKeysState","sowillKeysState","sowillIdentifierState","monitoringDateFiltersState","monitoringFilterDate","setMonitoringFilterDate","setRemotyFilter","remotyFilterState","setSigmaFilter","sigmaFilterState","isOpenMonitoringFiltersState","setNoMonitoringError","monitoringListHasError","localFilterDate","setLocalFilterDate","isLoadingMonitoringEventState","handleResetState","remotyIdEquipamento","remotyNmEquip","sigmaTipo","sigmaTituloChip","SIGMA_CLOUD","SelectTypeSigmaEvent","selectInput","modalContainer","modalContent","optionItem","sigmaEventsFilterType","modalVisible","setModalVisible","stylesContainer","View","TouchableWithoutFeedback","AntDesign","animationType","transparent","onRequestClose","option","handleOptionPress","SelectRemotyEventCompany","isMenuOpen","setMenuOpen","currentCompany","setCompany","setEventError","setSectorError","sectorListHasError","setUserError","userListHasError","setContactError","contactListHasError","companies","centraisMonitoramento","handleSelectCompany","company","idEquipment","nmEquipment","onSelectCompany","contentStyle","anchorPosition","selectSigmaCloudKeyData","SelectSigmaCloudKey","currentKey","setCurrentKey","empresaSigma","chave","particao","idMonitoramento","sowillIdentifier","currentSigmaKey","REMOTY","MONI","SIGMA_DESK","SO_WILL","monitoringEventListState","isLoadingSectorEventsState","sectorListState","CardMonitoringEvent","CardSector","isLoadingContactEventState","contactListState","CardContact","isLoadingUserEventsState","userListState","CardUser","fone3","selectSowillKeyState","empresaMonitoramento","SelectSowillKey","setKey","identifier","Events","printEvents","getSigmaEvents","getRemotyEvents","getRemotySectors","getRemotyUsers","getRemotyContacts","getMoniEvents","getMoniSectors","getMoniUsers","getSowillEvents","getSowillSectors","getSowillUsers","getSowillKeys","getSowillIdentifier","getSigmaCloudSectors","getSigmaCloudUsers","getSigmaCloudKeys","getSigmaDeskSectors","getSigmaDeskContacts","sigmaKeys","setSigmaKeys","setSowillKeysList","selectedSowillKey","setSowillIdentifier","getKeys","getIdentifier","monitoringEventList","setMonitoringEventList","setHasError","sigmaFilterType","getEventsMonitoring","handleGetSigmaEvent","initialDefaultDate","finalDefaultDate","dataIni","filtro","getEvents","defaultDate","empresaMoni","dtInicio","dtFim","mr","innerWidth","ml","listaEventos","printParams","print","printError","MonitoringEventList","sectorList","setSectorList","getEventsSector","getSectors","getSowillSectorParams","getZones","idCentral","getSector","SectorList","userList","setUserList","getEventUser","getUsers","codCentral","UserEventList","contactList","setContactList","getEventContacts","getContacts","ContactEventList","makeEventsFactory","makePrintEvents","makeGetRemotyEventsFactory","makeGetRemotySectorsFactory","makeGetRemotyUsersFactory","makeGetRemotyContactsFactory","makeGetMoniEventsFactory","makeGetMoniUsersFactory","makeGetMoniSectorsFactory","makeGetSowillEventsFactory","makeGetSowillSectorsFactory","makeGetSowillUsersFactory","makeGetSowillKeysFactory","makeGetSowillIdentifierFactory","makeGetSigmaEventsFactory","makeGetSigmaCloudSectorsFactory","makeGetSigmaCloudUsersFactory","makeGetSigmaCloudKeysFactory","makeGetSigmaDeskSectorsFactory","makeGetSigmaDeskContactsFactory","travelAlertState","travelAlertResponsiblesKeysState","travelAlertAuthorizedsState","travelAlertVehiclesState","ModalAddResponsible","addResponsibleState","addVehicleState","setAddVehicle","travelAlertAddResponsibleState","modalState","setModalState","setModalVehicle","isOpenTravelAlertAddVehicle","setTravelAlertResponsibles","setTravelAlertResponsiblesKeys","addNewVehicle","handleAddResponsible","typeCurrent","AUTHORIZED","KEYS","VEHICLE_KEYS","VEHICLE_AUTHORIZED","handleReset","ModalAddVehicle","setOpenAddResponsible","setTravelAlertAddVehicle","ResponsiblesPanel","onAddNew","onRemove","idResp","_ref$disabled","Surface","iconColor","SelectDateTime","travelAlert","setTravelAlert","setModalTimePicker","travelAlertTimePickerState","dateRow","currentTime","VehiclePanel","openAddNew","cardInformation","row","inlineInputs","addTravelAlertOs","modalTimePicker","authorizeds","setAuthorizeds","responsiblesKeys","setResponsiblesKeys","_useRecoilState11","_useRecoilState12","setVehicles","setOpenAddVehicle","resetAuthorizeds","resetResponsibleKeys","resetVehicles","resetAddResponsible","isValidDataTravelAlertOs","handleChangeTime","time","hours","minutes","idVehicle","addTravelOsParams","TimePicker","onConfirm","onDimiss","makeTravelAlertFactory","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","data64","nomeArquivo","OsImages","imagensGerais","objectFit","OsChecklist","_serviceOrderDetails$2","setSelectedImageView","checklist","perguntas","titulo","pergunta","perguntaLabel","imagemBase64","codInternoPergunta","_image$data","getImageAttachments","titleQuestion","descritiva","oSCheckListsRespostas","detalhes","resposta","OsImageView","imageView","PrintButton","setIsPrinting","handleFormatPrint","createElement","innerHTML","head","appendChild","addEventListener","handlePrint","ServiceOrderDetail","getServiceOrderDetail","setIsLoading","setServiceOrderDetail","useRoute","tokenParam","getDetail","makeServiceOrderDetailFactory","isLoadingTrackState","trackState","CardTrack","getTrackDetails","isLoadingTrackDetailsState","setDetails","trackDetailsState","setOpenDetail","isOpenTrackDetailsState","getDetails","currentDetails","handleDetails","TrackDetails","details","handleFuelName","Biocombustivel","Diesel","Eletrico","Etanol","GNV","Gasolina","Hibrido","getTrackList","tracks","setTracks","makeTrackFactory","isOpenContractDetailsState","btnAction","actionsContent","CompanyCard","cpfCnpj","enderecoGeral","ContractCard","numContrato","primeiroFaturamento","diaVencimento","ModalContractDetails","_client$servicosContr","btnLimparStyles","terminoContrato","valorMensal","ph","servicosContratadosPortal","servico","cliSerContDescricao","cliSerContQuantidade","cliSerContValor","dataCadastro","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","useFirebaseNotifications","setSocialMedia","setLoadingProspectConfigs","setPhoneModal","phoneModalNumberState","socialMedias","SnackBarProvider","UpdatePasswordC","updatePassword","setModalOpen","phoneModalState","setModalNumber","callNumber","phoneNumber","Platform","OS","Linking","canOpenURL","supported","openURL","animateView","toValue","animatedRef","delay","Animated","timing","useNativeDriver","SnackBar","fadeAnime","Value","initAnimations","sequence","start","Snackbar","action","compact","hidden","closeButton","inputDatePicker","MARGIN_MODALS","contentStyles","titleStyles","buttons","TextInputProps","observer","IntersectionObserver","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.b0394f32.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'\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}\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 data64: 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}\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 type GetDigitalAcceptsParams = {\n codCliente: number\n dtInicial: string\n dtFinal: string\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n}\n\nexport interface GetDigitalAccepts {\n get: (params: GetDigitalAcceptsParams) => Promise\n}\n\nexport namespace GetDigitalAccepts {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_STATUS: 'Ambos' as 'Pendentes' | 'Autorizados' | 'Ambos'\n }\n}\n","export * from './get-sac-list'\nexport * from './create-sac'\n","export * from './get-nfs'\nexport * from './open-danfe'\nexport * from './open-nfse'\nexport * from './download-xml'\nexport * from './open-lease-receipt'\n","import { NFResultModel } from '@/domain/models'\n\nexport type GetNFsParams = {\n cliCodigo: number\n dtInicial?: string\n dtFinal?: string\n}\n\nexport interface GetNFs {\n get: (params: GetNFsParams) => Promise\n}\n\nexport namespace GetNFs {\n export const RN = {\n DEFAULT_MONTHS_AGO: 6\n }\n}\n","import { NFModel } from '@/domain/models'\n\nexport type OpenDanfeParams = {\n cliCodigo: number\n notaFiscal: NFModel\n}\n\nexport interface OpenDanfe {\n open: (params: OpenDanfeParams) => Promise\n}\n\nexport namespace OpenDanfe {\n export const RN = {\n FOLDER_DEFAULT_PDF_DANFE: 'TempRelatorios/Danfe'\n }\n}\n","export type OpenNfseParams = {\n codEmpresa: number\n codUnidade: number\n numeroRPS: number\n serieRps: string\n linkAutenticidade: string\n utilizarDevExpress: boolean\n}\n\nexport interface OpenNfse {\n open: (params: OpenNfseParams) => Promise\n}\n\nexport namespace OpenNfse {\n export const RN = {\n FOLDER_DEFAULT_NFSE: 'TempRelatorios/EspelhoNFSe'\n }\n}\n","export type OpenLeaseReceiptParams = {\n codigoRecibo: string\n}\n\nexport interface OpenLeaseReceipt {\n open: (params: OpenLeaseReceiptParams) => Promise\n}\n\nexport namespace OpenLeaseReceipt {\n export const RN = {\n FOLDER_DEFAULT_LEASE_RECEIPT: 'TempRelatorios'\n }\n}\n","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 { 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","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","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\": 416,\n\t\"./af.js\": 416,\n\t\"./ar\": 417,\n\t\"./ar-dz\": 418,\n\t\"./ar-dz.js\": 418,\n\t\"./ar-kw\": 419,\n\t\"./ar-kw.js\": 419,\n\t\"./ar-ly\": 420,\n\t\"./ar-ly.js\": 420,\n\t\"./ar-ma\": 421,\n\t\"./ar-ma.js\": 421,\n\t\"./ar-ps\": 422,\n\t\"./ar-ps.js\": 422,\n\t\"./ar-sa\": 423,\n\t\"./ar-sa.js\": 423,\n\t\"./ar-tn\": 424,\n\t\"./ar-tn.js\": 424,\n\t\"./ar.js\": 417,\n\t\"./az\": 425,\n\t\"./az.js\": 425,\n\t\"./be\": 426,\n\t\"./be.js\": 426,\n\t\"./bg\": 427,\n\t\"./bg.js\": 427,\n\t\"./bm\": 428,\n\t\"./bm.js\": 428,\n\t\"./bn\": 429,\n\t\"./bn-bd\": 430,\n\t\"./bn-bd.js\": 430,\n\t\"./bn.js\": 429,\n\t\"./bo\": 431,\n\t\"./bo.js\": 431,\n\t\"./br\": 432,\n\t\"./br.js\": 432,\n\t\"./bs\": 433,\n\t\"./bs.js\": 433,\n\t\"./ca\": 434,\n\t\"./ca.js\": 434,\n\t\"./cs\": 435,\n\t\"./cs.js\": 435,\n\t\"./cv\": 436,\n\t\"./cv.js\": 436,\n\t\"./cy\": 437,\n\t\"./cy.js\": 437,\n\t\"./da\": 438,\n\t\"./da.js\": 438,\n\t\"./de\": 439,\n\t\"./de-at\": 440,\n\t\"./de-at.js\": 440,\n\t\"./de-ch\": 441,\n\t\"./de-ch.js\": 441,\n\t\"./de.js\": 439,\n\t\"./dv\": 442,\n\t\"./dv.js\": 442,\n\t\"./el\": 443,\n\t\"./el.js\": 443,\n\t\"./en-au\": 444,\n\t\"./en-au.js\": 444,\n\t\"./en-ca\": 445,\n\t\"./en-ca.js\": 445,\n\t\"./en-gb\": 446,\n\t\"./en-gb.js\": 446,\n\t\"./en-ie\": 447,\n\t\"./en-ie.js\": 447,\n\t\"./en-il\": 448,\n\t\"./en-il.js\": 448,\n\t\"./en-in\": 449,\n\t\"./en-in.js\": 449,\n\t\"./en-nz\": 450,\n\t\"./en-nz.js\": 450,\n\t\"./en-sg\": 451,\n\t\"./en-sg.js\": 451,\n\t\"./eo\": 452,\n\t\"./eo.js\": 452,\n\t\"./es\": 453,\n\t\"./es-do\": 454,\n\t\"./es-do.js\": 454,\n\t\"./es-mx\": 455,\n\t\"./es-mx.js\": 455,\n\t\"./es-us\": 456,\n\t\"./es-us.js\": 456,\n\t\"./es.js\": 453,\n\t\"./et\": 457,\n\t\"./et.js\": 457,\n\t\"./eu\": 458,\n\t\"./eu.js\": 458,\n\t\"./fa\": 459,\n\t\"./fa.js\": 459,\n\t\"./fi\": 460,\n\t\"./fi.js\": 460,\n\t\"./fil\": 461,\n\t\"./fil.js\": 461,\n\t\"./fo\": 462,\n\t\"./fo.js\": 462,\n\t\"./fr\": 463,\n\t\"./fr-ca\": 464,\n\t\"./fr-ca.js\": 464,\n\t\"./fr-ch\": 465,\n\t\"./fr-ch.js\": 465,\n\t\"./fr.js\": 463,\n\t\"./fy\": 466,\n\t\"./fy.js\": 466,\n\t\"./ga\": 467,\n\t\"./ga.js\": 467,\n\t\"./gd\": 468,\n\t\"./gd.js\": 468,\n\t\"./gl\": 469,\n\t\"./gl.js\": 469,\n\t\"./gom-deva\": 470,\n\t\"./gom-deva.js\": 470,\n\t\"./gom-latn\": 471,\n\t\"./gom-latn.js\": 471,\n\t\"./gu\": 472,\n\t\"./gu.js\": 472,\n\t\"./he\": 473,\n\t\"./he.js\": 473,\n\t\"./hi\": 474,\n\t\"./hi.js\": 474,\n\t\"./hr\": 475,\n\t\"./hr.js\": 475,\n\t\"./hu\": 476,\n\t\"./hu.js\": 476,\n\t\"./hy-am\": 477,\n\t\"./hy-am.js\": 477,\n\t\"./id\": 478,\n\t\"./id.js\": 478,\n\t\"./is\": 479,\n\t\"./is.js\": 479,\n\t\"./it\": 480,\n\t\"./it-ch\": 481,\n\t\"./it-ch.js\": 481,\n\t\"./it.js\": 480,\n\t\"./ja\": 482,\n\t\"./ja.js\": 482,\n\t\"./jv\": 483,\n\t\"./jv.js\": 483,\n\t\"./ka\": 484,\n\t\"./ka.js\": 484,\n\t\"./kk\": 485,\n\t\"./kk.js\": 485,\n\t\"./km\": 486,\n\t\"./km.js\": 486,\n\t\"./kn\": 487,\n\t\"./kn.js\": 487,\n\t\"./ko\": 488,\n\t\"./ko.js\": 488,\n\t\"./ku\": 489,\n\t\"./ku-kmr\": 490,\n\t\"./ku-kmr.js\": 490,\n\t\"./ku.js\": 489,\n\t\"./ky\": 491,\n\t\"./ky.js\": 491,\n\t\"./lb\": 492,\n\t\"./lb.js\": 492,\n\t\"./lo\": 493,\n\t\"./lo.js\": 493,\n\t\"./lt\": 494,\n\t\"./lt.js\": 494,\n\t\"./lv\": 495,\n\t\"./lv.js\": 495,\n\t\"./me\": 496,\n\t\"./me.js\": 496,\n\t\"./mi\": 497,\n\t\"./mi.js\": 497,\n\t\"./mk\": 498,\n\t\"./mk.js\": 498,\n\t\"./ml\": 499,\n\t\"./ml.js\": 499,\n\t\"./mn\": 500,\n\t\"./mn.js\": 500,\n\t\"./mr\": 501,\n\t\"./mr.js\": 501,\n\t\"./ms\": 502,\n\t\"./ms-my\": 503,\n\t\"./ms-my.js\": 503,\n\t\"./ms.js\": 502,\n\t\"./mt\": 504,\n\t\"./mt.js\": 504,\n\t\"./my\": 505,\n\t\"./my.js\": 505,\n\t\"./nb\": 506,\n\t\"./nb.js\": 506,\n\t\"./ne\": 507,\n\t\"./ne.js\": 507,\n\t\"./nl\": 508,\n\t\"./nl-be\": 509,\n\t\"./nl-be.js\": 509,\n\t\"./nl.js\": 508,\n\t\"./nn\": 510,\n\t\"./nn.js\": 510,\n\t\"./oc-lnc\": 511,\n\t\"./oc-lnc.js\": 511,\n\t\"./pa-in\": 512,\n\t\"./pa-in.js\": 512,\n\t\"./pl\": 513,\n\t\"./pl.js\": 513,\n\t\"./pt\": 514,\n\t\"./pt-br\": 515,\n\t\"./pt-br.js\": 515,\n\t\"./pt.js\": 514,\n\t\"./ro\": 516,\n\t\"./ro.js\": 516,\n\t\"./ru\": 517,\n\t\"./ru.js\": 517,\n\t\"./sd\": 518,\n\t\"./sd.js\": 518,\n\t\"./se\": 519,\n\t\"./se.js\": 519,\n\t\"./si\": 520,\n\t\"./si.js\": 520,\n\t\"./sk\": 521,\n\t\"./sk.js\": 521,\n\t\"./sl\": 522,\n\t\"./sl.js\": 522,\n\t\"./sq\": 523,\n\t\"./sq.js\": 523,\n\t\"./sr\": 524,\n\t\"./sr-cyrl\": 525,\n\t\"./sr-cyrl.js\": 525,\n\t\"./sr.js\": 524,\n\t\"./ss\": 526,\n\t\"./ss.js\": 526,\n\t\"./sv\": 527,\n\t\"./sv.js\": 527,\n\t\"./sw\": 528,\n\t\"./sw.js\": 528,\n\t\"./ta\": 529,\n\t\"./ta.js\": 529,\n\t\"./te\": 530,\n\t\"./te.js\": 530,\n\t\"./tet\": 531,\n\t\"./tet.js\": 531,\n\t\"./tg\": 532,\n\t\"./tg.js\": 532,\n\t\"./th\": 533,\n\t\"./th.js\": 533,\n\t\"./tk\": 534,\n\t\"./tk.js\": 534,\n\t\"./tl-ph\": 535,\n\t\"./tl-ph.js\": 535,\n\t\"./tlh\": 536,\n\t\"./tlh.js\": 536,\n\t\"./tr\": 537,\n\t\"./tr.js\": 537,\n\t\"./tzl\": 538,\n\t\"./tzl.js\": 538,\n\t\"./tzm\": 539,\n\t\"./tzm-latn\": 540,\n\t\"./tzm-latn.js\": 540,\n\t\"./tzm.js\": 539,\n\t\"./ug-cn\": 541,\n\t\"./ug-cn.js\": 541,\n\t\"./uk\": 542,\n\t\"./uk.js\": 542,\n\t\"./ur\": 543,\n\t\"./ur.js\": 543,\n\t\"./uz\": 544,\n\t\"./uz-latn\": 545,\n\t\"./uz-latn.js\": 545,\n\t\"./uz.js\": 544,\n\t\"./vi\": 546,\n\t\"./vi.js\": 546,\n\t\"./x-pseudo\": 547,\n\t\"./x-pseudo.js\": 547,\n\t\"./yo\": 548,\n\t\"./yo.js\": 548,\n\t\"./zh-cn\": 549,\n\t\"./zh-cn.js\": 549,\n\t\"./zh-hk\": 550,\n\t\"./zh-hk.js\": 550,\n\t\"./zh-mo\": 551,\n\t\"./zh-mo.js\": 551,\n\t\"./zh-tw\": 552,\n\t\"./zh-tw.js\": 552\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 = 759;","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\nconst universalCookies = new Cookies()\n\nexport class UniversalCookieAdapter implements SetCookie, GetCookie {\n set (key: string, value: any): void {\n if (value) {\n universalCookies.set(key, value, { path: '/' })\n } else {\n universalCookies.remove(key, { path: '/' })\n }\n }\n\n get (key: string): any {\n return universalCookies.get(key)\n }\n}\n","import { GetStorage, SetStorage } from '@/data/protocols/cache'\n\nexport class LocalStorageAdapter implements SetStorage, GetStorage {\n set (key: string, value: any): void {\n if (value) {\n localStorage.setItem(key, JSON.stringify(value))\n } else {\n localStorage.removeItem(key)\n }\n }\n\n get (key: string): any {\n const value = localStorage.getItem(key)\n return value ? JSON.parse(value) : undefined\n }\n}\n","import { LocalStorageAdapter } from '@/infra/cache'\n\nexport const makeLocalStorageAdapter = (): LocalStorageAdapter => new LocalStorageAdapter()\n","export class InvalidCredentialsError extends Error {\n constructor (message?: string) {\n super(message ?? 'Credenciais inválidas')\n this.name = 'InvalidCredentialsError'\n }\n}\n","export class InvalidRelationCompany extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'InvalidRelationCompany'\n }\n}\n","export class UnexpectedError extends Error {\n constructor () {\n super('Algo de errado aconteceu. Tente novamente mais tarde.')\n this.name = 'UnexpectedError'\n }\n}\n","export class UnexpectedResultFormatError extends Error {\n constructor () {\n super('Algo de errado aconteceu. Resultado com formato inválido')\n this.name = 'UnexpectedResultFormatError'\n }\n}\n","export class AccessDeniedError extends Error {\n constructor () {\n super('Sessão Expirada, faça o login novamente')\n this.name = 'AccessDeniedError'\n }\n}\n","export class ForbiddenError extends Error {\n constructor (message: string) {\n super(message || '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 SamePasswordError extends Error {\n constructor () {\n super('Senha e nova senha são iguais, por favor informe uma nova senha diferente da atual!')\n this.name = 'SamePasswordError'\n }\n}\n","export class NotFoundError extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'NotFoundError'\n }\n}\n","import { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { AuthenticationModel } from '@/domain/models'\nimport { AuthenticationParams, Authentication } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteAuthentication implements Authentication {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async auth (params: AuthenticationParams): Promise {\n const 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 dataParams = {\n ...params,\n IdentificadorAplicacao: this.identificadorAplicacao\n }\n\n const authParams: HttpRequest = {\n url: `${this.url}/api/v1/autenticacao/autenticar`,\n method: 'post',\n body: dataParams,\n headers: {\n 'content-type': 'multipart/form-data'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToModel(body)\n case HttpStatusCode.forbidden: throw new ForbiddenError(body?.message)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.message)\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (authenticationAdmin: AuthenticationAdminResult): AuthenticationModel {\n return {\n ...authenticationAdmin.data,\n access_token: authenticationAdmin.data.token\n }\n }\n}\n","import { GetUserByDocument, GetUserByDocumentParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, InvalidCredentialsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { UserModel } from '@/domain/models'\n\nexport class RemoteGetUser implements GetUserByDocument {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getUsersByDocument (params: GetUserByDocumentParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/acessofacilitado`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n if (!body.length) {\n throw new InvalidCredentialsError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { ForgotPassword, ForgotPasswordParams } from '@/domain/usecases'\n\nexport class RemoteForgotPassword implements ForgotPassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async requestAccess (params: ForgotPasswordParams): Promise {\n const { body, statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/recuperar-senha`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { PortalLogout, PortalLogoutParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemotePortalLogout implements PortalLogout {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async logout (params: PortalLogoutParams): Promise {\n const { statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/RealizaLogoutPortal`,\n params\n })\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { MetricsLogin, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogin implements MetricsLogin {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGIN',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { MetricsLogoff, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogoff implements MetricsLogoff {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGOFF',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { GetClientByCode, GetClientByCodeParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { ClientModel } from '@/domain/models'\n\nexport class RemoteGetClientByCode implements GetClientByCode {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getByCode (params: GetClientByCodeParams): Promise {\n const 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, GetTicketPixParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTicketPix implements GetTicketPix {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getPix (params: GetTicketPixParams): Promise {\n 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 }[params.codBanco]\n } else {\n bankSlipUrl = await this.generateBankSlip.generate(params)\n }\n }\n\n window.open(bankSlipUrl, '_blank')\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\n\nexport class RemoteOpenStatementOfDebts implements OpenStatementOfDebts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async openPaymentReport (params: OpenStatementOfDebtsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/imprimir-quitacao`,\n method: 'post',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open?.(`/${OpenStatementOfDebts.RN.FOLDER_DEFAULT_PDF}/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ThemeModel } from '@/domain/models'\nimport { GetTheme } 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, UnexpectedResultFormatError } from '@/domain/errors'\nimport { VersionsModel } from '@/domain/models'\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/portal/versoes`,\n method: 'get'\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, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { NFResultModel } from '@/domain/models'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\n\nexport class RemoteGetNFs implements GetNFs {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetNFsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/NotasFiscais`,\n method: 'get',\n params,\n headers:\n {\n 'content-type': 'application/json',\n 'cache-control': 'no-cache'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\n\nexport class RemoteOpenDanfe implements OpenDanfe {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenDanfeParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-danfe`,\n method: 'post',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n window.open(`/${OpenDanfe.RN.FOLDER_DEFAULT_PDF_DANFE}/${params.cliCodigo}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenNfse implements OpenNfse {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenNfseParams): Promise {\n const { linkAutenticidade, ...dataParams } = params\n\n if (dataParams.utilizarDevExpress) {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/EspelhoNotaFiscal`,\n method: 'get',\n params: {\n ...dataParams,\n producao: true\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenNfse.RN.FOLDER_DEFAULT_NFSE}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n } else if (linkAutenticidade) {\n window.open(linkAutenticidade, '_blank')\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\n\nexport class RemoteOpenLeaseReceipt implements OpenLeaseReceipt {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenLeaseReceiptParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-recibo-locacao`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenLeaseReceipt.RN.FOLDER_DEFAULT_LEASE_RECEIPT}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteAddNewOs implements AddNewOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async add (params: AddNewOsParams): Promise {\n const bodyParams = {\n ...params,\n avisoViagem: false,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddTravelAlertOs, AddTravelAlertOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { TravelAlertBuilder } from '@/data/builders'\n\nexport class RemoteAddTravelAlertOs implements AddTravelAlertOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly travelAlertBuilder: TravelAlertBuilder\n ) {}\n\n async add (params: AddTravelAlertOsParams): Promise {\n const observacoes = this.travelAlertBuilder\n .setDates(params.dataSaida, params.horaSaida, params.dataRetorno, params.horaRetorno)\n .requester(params.solicitante)\n .emailRequester(params.email)\n .phone1Requester(params.telefone1)\n .phone2Requester(params.telefone2)\n .addResponsibles(params.chavesSomenteComCentral, params.responsaveisChave)\n .addAuthorized(params.possuiAutorizados, params.autorizados)\n .addVehicles(params.possuiVeiculosCuidadosCentral, params.veiculos)\n .addRecommendations(params.recomendacoes)\n .build()\n\n const bodyParams = {\n cliente: params.cliente,\n empresa: params.empresa,\n modalidade: params.modalidade,\n solicitante: params.solicitante,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal,\n avisoViagem: true,\n observacoes\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders, GetServiceOrdersParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetServiceOrders implements GetServiceOrders {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetServiceOrdersParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/lista-oss`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body as ServiceOrderResult\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance, GetOsAttendanceParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetOsAttendance implements GetOsAttendance {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getAttendences (params: GetOsAttendanceParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/osatendimentos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetailParams, GetServiceOrderDetail } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetServiceOrderDetail implements GetServiceOrderDetail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getDetail (params: GetServiceOrderDetailParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/dados-os`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais } from '@/domain/usecases/redes-sociais/get-redes-sociais'\n\nexport class RemoteGetRedesSociais implements GetRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getRedesSociais (): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'get',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { RedesSociaisModel } from '@/domain/models'\nimport { SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases/'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteSaveRedesSociais implements SaveRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async save (params: SaveRedesSociaisParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { GetDigitalAccepts, GetDigitalAcceptsParams } from '@/domain/usecases'\n\nexport class RemoteGetAcceptDigital implements GetDigitalAccepts {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetDigitalAcceptsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-aceite-eletronico`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as AcceptDigitalModel[]\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenUrlDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenUrlDocAccept implements OpenUrlDocumentAccept {\n constructor (\n private readonly httpGetClient: HttpClient\n ) { }\n\n async view (params: OpenUrlDocumentAcceptParams): Promise {\n const { statusAceite, urlAceite } = params\n\n if (statusAceite === 'Pendente') {\n window.open(urlAceite, '_blank')\n } else {\n const hash = urlAceite.substring(urlAceite.indexOf('#/aceite/') + 9)\n const urlBaseAceite = urlAceite.substring(0, urlAceite.indexOf('AceiteDigital/#'))\n\n const request: HttpRequest = {\n url: `${urlBaseAceite}api/AceiteEletronico?link=${hash}`,\n method: 'post',\n params: {\n enviarEmail: false\n }\n }\n\n const { statusCode, body } = await this.httpGetClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n const certificadoHtml = new Blob([body], { type: 'text/html;charset=utf-8' })\n const html = URL.createObjectURL(certificadoHtml)\n window.open(html, '_blank')\n\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenDocumentAccept implements OpenDocumentAccept {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async open (params: OpenDocumentAcceptParams): Promise {\n const { codigoAceite, statusAceite } = params\n\n if (statusAceite === 'Autorizado') {\n const { statusCode, body } = await this.httpClient.request({\n url: `${this.url}/api/AceiteEletronico/ObterDocumentoAceite`,\n method: 'get',\n params: { codigoAceite }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n window.open(`${this.url}/${body}`, '_blank')\n break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { PrintEvents, PrintEventsParams } from '@/domain/usecases'\n\nexport class RemotePrintEvents implements PrintEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async print (params: PrintEventsParams): Promise {\n const { tipoConexao, data } = params\n const request: HttpRequest = {\n url: `${this.url}/api/eventosmonitoramento`,\n method: 'post',\n params: { tipoConexao },\n body: data\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n const oldUrlIndex = this.url.toLowerCase().indexOf('/portalservice')\n const newUrl = oldUrlIndex === -1 ? this.url : this.url.substring(oldUrlIndex)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open(`${newUrl}/TempRelatorios/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, RemotyEventModel } from '@/domain/models'\nimport { GetRemotyEvents, GetRemotyEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetRemotyEvents implements GetRemotyEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetRemotyEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/eventos`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (eventsRaw: string): GenericEventModel[] {\n const events = eventsRaw\n ? JSON.parse(eventsRaw) as RemotyEventModel[]\n : []\n\n return events?.map(remotyEvent => ({\n evento: remotyEvent?.event?.codEvent,\n descricao: remotyEvent?.event?.nmEvent,\n dataEvento: remotyEvent?.dtEventFormatted,\n aux: remotyEvent?.event?.idEvent.toString(),\n usuario: remotyEvent?.nmPanelUser\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, RemotySectorResult } from '@/domain/models'\nimport { GetRemotySectors, GetRemotySectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotySectors implements GetRemotySectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetRemotySectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as RemotySectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: RemotySectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.nmZone,\n idEquipamento: sector.idEquipmentZone.toString(),\n codigoCliente: sector.codZone.toString(),\n ativo: sector.flActive\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers, GetRemotyUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyUserEvents implements GetRemotyUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetRemotyUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body as RemotyUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (users: RemotyUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.nmUserPassword\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericContactModel, RemotyContactModel } from '@/domain/models'\nimport { GetRemotyContacts, GetRemotyContactsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyContacts implements GetRemotyContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetRemotyContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaContato`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as RemotyContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: RemotyContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.idDevice.toString(),\n nomeUsuario: contact.nmDeviceUser,\n fone1: contact.nmDevicePhone,\n fone2: contact.nmDevicePhone2,\n idDispositivo: contact.deviceGroup.idDeviceGroup.toString(),\n nomeDispositivo: contact.deviceGroup.nmDeviceGroup\n }))\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, MoniEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetMoniEvents implements GetMoniEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly dateAdapter: DateAdapter\n\n ) {}\n\n async getEvents (params: GetMoniEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-eventos-central`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as MoniEventModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: MoniEventModel[]): GenericEventModel[] {\n return events?.map(event => ({\n evento: event?.codigoOcorrencia,\n descricao: event?.ocorrencia,\n dataEvento: this.dateAdapter.format(event?.dataHora)\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, MoniSectorResult } from '@/domain/models'\nimport { GetMoniSectorsParams, GetMoniSectors } from '@/domain/usecases/events/get-moni-sectors'\n\nexport class RemoteGetMoniSectors implements GetMoniSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetMoniSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectorsRaw: string): GenericSectorModel[] {\n const sectors = sectorsRaw\n ? JSON.parse(sectorsRaw) as MoniSectorResult\n : []\n\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.equipamento,\n codigoCliente: sector.cliente.toString(),\n codigoZona: sector.equipamento\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, MoniUserResult } from '@/domain/models'\nimport { GetMoniUsers, GetMoniUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGeMoniUsersEvents implements GetMoniUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetMoniUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-usuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (usersRaw: string): GenericUserModel[] {\n const users = usersRaw\n ? JSON.parse(usersRaw) as MoniUserResult\n : []\n\n return users?.map(user => ({\n nome: user.nome,\n codCliente: user.codCliente.toString(),\n dddFone: user.dddCelular,\n fone1: user.celular\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SoWillEventModel } from '@/domain/models'\nimport { GetSowillEvents, GetSowillEventsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillEvents implements GetSowillEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getEvents (params: GetSowillEventsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n codInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaeventos`,\n method: 'post',\n params: { dateTimeInicioManutencao: params.dateTimeInicioManutencao },\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SoWillEventModel[]): GenericEventModel[] {\n return events?.map(sowillEvent => ({\n evento: sowillEvent?.code,\n descricao: sowillEvent?.description,\n dataEvento: sowillEvent?.startDate,\n aux: sowillEvent?.id,\n usuario: sowillEvent.account\n }))\n }\n}\n","import { GenericSectorModel, SowillSectorResult } from '@/domain/models'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillSectors, GetSowillSectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillSectors implements GetSowillSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSowillSectorsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listazonas`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as SowillSectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SowillSectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.numeroSerie,\n codigoCliente: sector.id,\n observacao: sector.auxiliar\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SowillUserResult } from '@/domain/models'\nimport { GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillUsers implements GetSowillUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSowillUsersParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaUsuarios`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SowillUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SowillUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.usuarioAlarme,\n codCliente: user.nroUserSistema?.toString(),\n fone1: user.telefone1,\n fone2: user.telefone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillKeys, GetSowillKeysParams } from '@/domain/usecases'\nimport { SowillKeyResult } from '@/domain/models'\n\nexport class RemoteGetSowillKeys implements GetSowillKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSowillKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/soWill/listaChavesCliente`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillIdentifier, GetSowillIdentifierParams } from '@/domain/usecases'\nimport { SowillIdentifier, SowillIdentifierResult } from '@/domain/models'\n\nexport class RemoteGetSowillIdentifier implements GetSowillIdentifier {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getIdentifier (params: GetSowillIdentifierParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/dados`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return {\n codInternoChave: body.CodInternoChave,\n idCliente: body.IdCliente\n }\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents, GetSigmaEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaEvents implements GetSigmaEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetSigmaEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/EventosSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SigmaEventModel[]): GenericEventModel[] {\n return events?.map(sigmaEvent => ({\n evento: sigmaEvent?.evento,\n descricao: sigmaEvent?.descricao,\n dataEvento: sigmaEvent?.dataEvento,\n aux: sigmaEvent?.aux\n }))\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaCloudSectors, GetSigmaCloudSectorsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudSectors implements GetSigmaCloudSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSigmaCloudSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloudZona`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SigmaCloudUserResult } from '@/domain/models'\nimport { GetSigmaCloudUsers, GetSigmaCloudUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudUsers implements GetSigmaCloudUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSigmaCloudUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloud/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SigmaCloudUserResult): GenericUserModel[] {\n return users?.usuarios.map(user => ({\n nome: user.nome,\n codCliente: user.id.toString(),\n fone1: user.fone1,\n fone2: user.fone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { SigmaCloudKeyResponseModel, SigmaCloudKeyResult } from '@/domain/models'\nimport { GetSigmaCloudKeys, GetSigmaCloudKeysParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaCloudKeys implements GetSigmaCloudKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSigmaCloudKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmacloud/lista-chaves`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { GetSigmaDeskSectors, GetSigmaDeskSectorParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaDeskSectors implements GetSigmaDeskSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSector (params: GetSigmaDeskSectorParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/SetorSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSigmaDeskContacts, GetSigmaDeskContactsParams } from '@/domain/usecases'\nimport { GenericContactModel, SigmaDeskContactModel } from '@/domain/models'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaDeskContacts implements GetSigmaDeskContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetSigmaDeskContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/contatoSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SigmaDeskContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: SigmaDeskContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.cdCliente.toString(),\n nomeUsuario: contact.nome,\n fone1: contact.fone1,\n fone2: contact.fone2,\n idDispositivo: contact.idFuncao.toString(),\n nomeDispositivo: contact.descFuncao\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { ClaimsResult } from '@/domain/models'\nimport { GetSacList, GetSacListParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSacList implements GetSacList {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) { }\n\n async get (params: GetSacListParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-sacs`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\n\nexport class RemoteCreateSac implements CreateSac {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async create (sacParams: CreateSacParams): Promise {\n const params = {\n isPortal: true\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/portal/gravar-sac`,\n method: 'post',\n params,\n body: sacParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { 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 const statusCode = ['ERR_NETWORK', 'ECONNRESET', 'ERR_CONNECTION_RESET'].includes(error.code) ? 404 : error?.response?.status\n return {\n statusCode: statusCode || 400,\n body: error?.response?.data || error.message\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 { AuthenticationAdmin, AuthenticationAdminResult } from '@/domain/usecases'\nimport { RemoteAuthenticationAdmin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAuthenticationAdmin = (): AuthenticationAdmin => {\n const url = env.API_LOGIN_URL\n const identificadorAplicação = env.API_LOGIN_IDENTIFICADOR_APP\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAuthenticationAdmin(url, identificadorAplicação, httpClient)\n}\n","import { ClientModel } from '@/domain/models'\nimport { GetClientByCode } from '@/domain/usecases'\nimport { RemoteGetClientByCode } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetClientByCode = (): GetClientByCode => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetClientByCode(url, httpClient)\n}\n","import jwt_decode from 'jwt-decode'\nimport { Decoder } from '@/data/protocols/'\n\nexport class JwtAdapter implements Decoder {\n decode (token: string): any {\n try {\n const plaintext: any = jwt_decode(token)\n return plaintext\n } catch (error) {\n return null\n }\n }\n}\n","import { DateAdapter, DateDiffInDaysParams } from '@/data/protocols'\nimport moment from 'moment'\nmoment.locale('pt-br')\n\nexport class MomentDateAdapter implements DateAdapter {\n diffInDays (dates: DateDiffInDaysParams): number {\n const { startDate, endDate } = dates\n const diff = moment(startDate).startOf('day').diff(moment(endDate).startOf('day'), 'days')\n\n return diff < 0 ? diff * (-1) : diff\n }\n\n parse (date: Date | string): Date {\n return moment(date).startOf('day').toDate()\n }\n\n format (date: Date | string, dateFormat: string = 'DD/MM/YYYY'): string {\n if (!date) {\n return 'Data inválida'\n }\n\n return moment(date).format(dateFormat)\n }\n\n today (): Date {\n return moment().toDate()\n }\n\n daysAgo (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(days, 'days').toDate()\n }\n\n yearsAgo (years: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(years, 'years').toDate()\n }\n\n daysLater (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).add(days, 'days').toDate()\n }\n\n monthAgo (month: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(month, 'month').toDate()\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { MomentDateAdapter } from '@/infra/adapters'\n\nexport const makeDateAdapterFactory = (): DateAdapter => {\n return new MomentDateAdapter()\n}\n","import { EnvironmentDecoderAdapter } from '@/infra/adapters'\n\nexport const makeEnvironmentDecoderAdapterFactory = (): EnvironmentDecoderAdapter => new EnvironmentDecoderAdapter()\n","import { EnvironmentEncoderAdapter } from '@/infra/adapters'\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 private addLine (line: string): TravelAlertBuilder {\n this.observation += line\n this.observation += '\\r\\n'\n return this\n }\n\n setDates (\n dataSaida: string,\n horaMinutoSaida: string,\n dataRetorno: string,\n horaMinutoRetorno: string\n ): TravelAlertBuilder {\n const [horaSaida, minutoSaida] = horaMinutoSaida.split(':')\n const [horaRetorno, minutoRetorno] = horaMinutoRetorno.split(':')\n\n const dateStart = this.dateAdapter.parse(dataSaida)\n dateStart.setHours(parseInt(horaSaida))\n dateStart.setMinutes(parseInt(minutoSaida))\n\n const dateEnd = this.dateAdapter.parse(dataRetorno)\n dateEnd.setHours(parseInt(horaRetorno))\n dateEnd.setMinutes(parseInt(minutoRetorno))\n\n const dataSaidaFormatada = this.dateAdapter.format(dateStart, 'DD/MM/YYYY HH:mm')\n const dataRetornoFormatada = this.dateAdapter.format(dateEnd, 'DD/MM/YYYY HH:mm')\n\n return this.addLine(`Aviso de Viagem de ${dataSaidaFormatada} á ${dataRetornoFormatada}`)\n }\n\n requester (requester: string): TravelAlertBuilder {\n return this.addLine(`Responsável pelo Aviso: ${requester}`)\n }\n\n emailRequester (email: string): TravelAlertBuilder {\n return this.addLine(`E-mail do responsável: ${email}`)\n }\n\n phone1Requester (phone: string): TravelAlertBuilder {\n return this.addLine(`Telefone 1: ${phone}`)\n }\n\n phone2Requester (phone: string): TravelAlertBuilder {\n if (phone) {\n return this.addLine(`Telefone 2: ${phone}`)\n }\n return this\n }\n\n addResponsible (responsible: AddTravelAlertOsResponsible): TravelAlertBuilder {\n this.addLine(`Nome: ${responsible.nome}`)\n responsible.endereco && this.addLine(`Endereço do responsável: ${responsible.endereco}`)\n responsible.telefone1 && this.addLine(`Telefone1 do responsável: ${responsible.telefone1}`)\n responsible.telefone2 && this.addLine(`Telefone2 do responsável: ${responsible.telefone2}`)\n responsible.observacao && this.addLine(`Observações do responsável: ${responsible.observacao}`)\n return this\n }\n\n addResponsibles (chavesSomenteComCentralMonitoramento: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (chavesSomenteComCentralMonitoramento) {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Responsáve${responsibles.length > 1 ? 'is' : 'l'} das Chaves da residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n }\n }\n }\n\n addAuthorized (possuiAutorizados: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (!possuiAutorizados) {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Autorizado${responsibles.length > 1 ? 's' : ''} a entrar na Residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n }\n }\n }\n\n addVehicle (vehicle: AddTravelAlertOsVehicle): TravelAlertBuilder {\n this.addLine(`Veículo Placa: ${vehicle.placa}`)\n\n if (vehicle.possuiResponsaveis && vehicle.responsaveis.length) {\n this.addLine('Estará com a chave do veículo o seguinte responsável: ')\n vehicle.responsaveis.forEach(resp => { this.addResponsible(resp) })\n } else {\n this\n .addLine('Somente a central de monitoramento estará com as chaves do veículo.')\n }\n\n if (vehicle.possuiAutorizados && vehicle.autorizados.length) {\n this.addLine('Estará autorizado a utilizar o veículo o seguinte responsável: ')\n vehicle.autorizados.forEach(authorized => { this.addResponsible(authorized) })\n } else {\n this\n .addLine('Ninguém está autorizado a utilizar o veículo.')\n }\n\n return this\n }\n\n addVehicles (possuiVeiculosCuidadosCentral: boolean, vehicles: AddTravelAlertOsVehicle[]): TravelAlertBuilder {\n if (!possuiVeiculosCuidadosCentral || !vehicles.length) {\n return this\n .addLine('Não ficarão veículos sobre cuidados da empresa.')\n .addLine('')\n } else {\n this\n .addLine(`Ficará sobre cuidados da empresa o${vehicles.length > 1 ? 's' : ''} seguinte${vehicles.length > 1 ? 's' : ''} veículo${vehicles.length > 1 ? 's' : ''}: `)\n .addLine('')\n\n vehicles.forEach(vehicle => { this.addVehicle(vehicle) })\n\n return this.addLine('')\n }\n }\n\n addRecommendations (recommendations: string): TravelAlertBuilder {\n if (recommendations) {\n return this\n .addLine('')\n .addLine(`Algumas Recomendações: ${recommendations}`)\n }\n return this\n }\n\n build (): string {\n return this.observation\n }\n}\n","import { 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 currentClient = tokenDecode?.sub || ''\n const loginWithCode = /^[0-9]+$/.test(currentClient?.toString())\n\n const isAdmin =\n currentClient?.toString().toUpperCase() === 'ADMIN' ||\n currentClient?.toString().endsWith('@insidesistemas.com.br') ||\n !loginWithCode\n\n return isAdmin\n }, [autentication?.accessToken])\n\n const login = 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 isAdmin = currentClient?.toString().toUpperCase() === 'ADMIN' || currentClient?.toString().endsWith('@insidesistemas.com.br')\n\n if (!autentication?.accessToken?.access_token) {\n return false\n }\n\n const auth = jwtAdapter.decode(autentication?.accessToken?.access_token)\n if (!isAdmin) {\n if (!auth || !EMMITERS_AUTHORIZED.includes(auth.iss)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n\n const roles = auth['integraservice-webapi'] || auth['portal-service']\n if (typeof roles === 'string') {\n if (!ROLES_AUTHORIZED.includes(roles)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n } else {\n if ((roles as []).every(role => !ROLES_AUTHORIZED.includes(role))) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n }\n }\n\n expireDate.setUTCSeconds(auth.exp)\n const isExpired = today > expireDate\n const hadAccessToken = !!localStorageAdapter.get(KEY_ACCESS_TOKEN)\n\n if (isExpired && hadAccessToken) {\n notify.error('Sessão Expirada, faça o login novamente!')\n logout()\n if (getCurrentClient()) {\n void makePortalLogout()\n .logout({ cliente: parseInt(getCurrentClient()), version })\n .catch(console.error)\n }\n\n return false\n }\n\n return true\n }, [autentication?.accessToken])\n\n const 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 cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { BoletoInsideConfigs, FinancialConfigs } from '@/domain/models'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { PaymentAvailableToUpdate, HidePaymentMethods, financialConfigsState, ActionsButtons } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const FinancialSettings: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [financialConfigs, setFinancialConfig] = useRecoilState(financialConfigsState)\n const [initialFinancialConfigs] = useState(financialConfigs)\n\n const themeClient = getThemeClient()\n\n const handleChange = (param: keyof (FinancialConfigs & BoletoInsideConfigs), value: boolean | string): void => {\n setFinancialConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialFinancialConfigs) !== JSON.stringify(financialConfigs)\n }\n\n return (\n \n \n {!financialConfigs\n ? \n : <>\n {financialConfigs.permitePagamentoCartao &&\n <>\n handleChange('validaCartaoCredito', !financialConfigs.validaCartaoCredito)}\n />\n handleChange('atualizaAutomaticoCartao', !financialConfigs.atualizaAutomaticoCartao)}\n />\n handleChange('visualizaFaturaCartaoVencida', !financialConfigs.visualizaFaturaCartaoVencida)}\n />\n \n }\n handleChange('bolEntradaConfirmada', !financialConfigs.bolEntradaConfirmada)}\n />\n handleChange('bolExibeOriginal', !financialConfigs.bolExibeOriginal)}\n />\n\n handleChange('bolAtualizaBoletos', !financialConfigs.bolAtualizaBoletos)}\n >\n \n \n\n handleChange('bolOcultaFormasPgto', !financialConfigs.bolOcultaFormasPgto)}\n >\n \n \n\n handleChange('exibeAlteracaoCartao', !financialConfigs.exibeAlteracaoCartao)}\n >\n handleChange('emailAlteracaoCartao', text)}\n maxLength={300}\n />\n \n\n {/* // TODO: adicionar configuração de email de pagamento com cartão */}\n {financialConfigs.permitePagamentoCartao &&\n handleChange('pagamentoCartaoAtivo', !financialConfigs.pagamentoCartaoAtivo)}\n />\n }\n \n }\n \n {hasChanged() && }\n \n )\n}\n","import { GeneralConfigs } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingGeneralSettingsState = atom({\n key: 'isLoadingGeneralSettingsState',\n default: true\n})\n\nexport const initialGeneralConfigsState = atom({\n key: 'initialGeneralConfigsState',\n default: null as unknown as GeneralConfigs\n})\n\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 } from 'recoil'\nimport { GeneralConfigs } from '@/domain/models'\nimport { TestEmail } from '@/domain/usecases'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { ActionsButtons, EmailSendingTester, generalConfigsState } from '@/presentation/pages/Settings/components'\nimport { 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\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 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 }\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 { 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 } 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 { UniversalCookieAdapter } from '@/infra/cache'\n\nexport const makeUniversalCookieAdapter = (): UniversalCookieAdapter => new UniversalCookieAdapter()\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 },\n cardContent: {\n display: 'flex',\n gap: 8\n }\n})\n","import React from 'react'\nimport { Card } from 'react-native-paper'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype CardBaseProps = {\n children: JSX.Element | JSX.Element[]\n 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})\n","import React, { useCallback } from 'react'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais, SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Box, Button, TextInput, Footer, socialMediaState } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype RedesSociasProps = {\n saveRedesSociais: SaveRedesSociais\n getRedesSociais: GetRedesSociais\n}\n\nexport const RedesSociais: React.FC = ({ saveRedesSociais, getRedesSociais }) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(socialMediaState)\n\n useFocusEffect(\n useCallback(() => {\n void getRedesSociais.getRedesSociais()\n .then((res) => setState(currentState => ({ ...currentState, ...res })))\n .catch(handleError)\n }, [])\n )\n\n const handleChange = (name: keyof RedesSociaisModel, value: string): void => {\n setState((prevState) => ({ ...prevState, [name]: value }))\n }\n\n const handleSave = (): void => {\n const saveParams: SaveRedesSociaisParams = {\n facebook: state.facebook,\n instagram: state.instagram,\n linkedin: state.linkedin,\n phone: state.phone,\n telegram: state.telegram,\n tiktok: state.tiktok,\n whatsapp: state.whatsapp,\n youtube: state.youtube\n }\n\n void saveRedesSociais.save(saveParams)\n .then(() => notify.show('Sucesso! Os links foram salvos!'))\n .catch(handleError)\n }\n\n return (\n <>\n \n handleChange('phone', text)}\n leading={(props) => }\n label='Número do Telefone'\n />\n handleChange('whatsapp', text)}\n leading={(props) => }\n label='Whatsapp'\n />\n handleChange('facebook', text)}\n leading={(props) => }\n label='Link do Facebook'\n />\n handleChange('linkedin', text)}\n leading={(props) => }\n label='Link do Linkedin'\n />\n handleChange('instagram', text)}\n leading={(props) => }\n label='Link do Instagram'\n />\n handleChange('tiktok', text)}\n leading={(props) => }\n label='Link do Tiktok'\n />\n handleChange('telegram', text)}\n leading={(props) => }\n label='Link do Telegram'\n />\n \n
\n \n
\n \n )\n}\n","import React from 'react'\nimport { RedesSociais } from '@/presentation/pages/RedesSociais'\nimport { makeGetRedesSociais, makeSaveRedesSociais } from '@/main/factories/usecases'\n\nexport const makeRedesSociaisFactory = (): JSX.Element => {\n return \n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n flex: 1\n },\n\n cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n },\n\n headerText: {\n padding: 12,\n fontWeight: '500',\n textTransform: 'uppercase'\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, 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 } from '@/presentation/components'\nimport { useSettings, useTheme, useThemeClient, useMediaQueries, useErrorHandler } from '@/presentation/hooks'\nimport { InvoicesSettings, GeneralSettings, FinancialSettings, ServiceOrderSettings, MenuAccessPermissions, ModalOnSaveOrDiscard, ModalOnDiscardChanges, ModalOnSaveChanges, isLoadingState } 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\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","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 = ({\n getTheme,\n saveTheme,\n getUnits,\n uploadFile,\n getVersions\n}) => {\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 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 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 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.setString(ticket.linhaDigitavel)\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticket.cliente,\n nossoNumero: ticket.nossoNumero,\n codBanco: ticket.codBanco,\n dtVencimento: ticket.vencimento,\n registrado: ticket.registrado,\n linkBoleto: ticket.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticket.numero} e vencimento ${dateAdapter.format(ticket.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n\n const handleOpenPix = (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, GetTicketPixParams } from '@/domain/usecases'\nimport { TicketModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, ModalBase, Clipboard, QRCodeSvg, Loading, Chip, HStack, VStack, TextInput } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingTicketPixState, isOpenTicketPixState, 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 = ({\n getTicketPix,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler(() => handleClose())\n const [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: GetTicketPixParams = {\n codInternoDuplicata: selectedTicketPix.codInterno,\n codigoBanco: selectedTicketPix.codBanco,\n pixUrl: selectedTicketPix.pixUrl\n }\n\n getTicketPix\n .getPix(params)\n .then(pix => setPix(pix))\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleCopyPix = (): void => {\n if (isHttps) {\n notify.show('O pix foi copiado para área de transferência')\n Clipboard.setString(pix)\n handleClose()\n } else {\n const input = document.getElementById('pix-code')\n input?.focus()\n }\n }\n\n const handleClose = useCallback((): void => {\n setOpen(false)\n setCurrentTicketPix(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 && 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 } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusTicketFilter, isLoadingFinancialState, isOpenFinancialFiltersState, ticketsFiltersState, ticketsState } from '@/presentation/pages/Financial/components'\nimport { GetTickets, GetTicketsParams, GetTicketSituation } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\nexport type FiltrosFatura = {\n situacao: GetTicketSituation\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getTickets: GetTickets\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getTickets, dateAdapter }) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const errorHandler = useErrorHandler()\n const setTickets = useSetRecoilState(ticketsState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }, [])\n\n const handleGetTickets = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paramsGetTicket)\n .then(setTickets)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { GetTickets } from '@/domain/usecases'\n\nexport const isOpenFinancialFiltersState = atom({\n key: 'isOpenFinancialFiltersState',\n default: false\n})\n\nexport const ticketsFiltersState = atom({\n key: 'ticketsFiltersState',\n default: {\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { statusTicketState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { GetTicketSituation } from '@/domain/usecases'\n\nexport const SelectStatusTicketFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const statusTicket = useRecoilValue(statusTicketState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: GetTicketSituation): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusTicket.map((statusOption) => (\n handleOnSelect(statusOption.value as GetTicketSituation)}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusTicketState = atom({\n key: 'selectStatusTicketState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Faturas Pagas', value: 'Pagas' },\n { _id: 'Faturas em Aberto', value: 'Em Aberto' }\n ]\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialIcons, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Clipboard, VStack, PixIcon } from '@/presentation/components'\nimport { isLoadingTicketViewState, isOpenCreditCardsState, isOpenTicketPixState, 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.setString(ticketView.linhaDigitavel)\n handleClose()\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenCreditCard = (): void => setOpenCreditCards(true)\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticketView?.cliente,\n nossoNumero: ticketView?.nossoNumero,\n codBanco: ticketView?.codBanco,\n dtVencimento: ticketView?.vencimento,\n registrado: ticketView?.registrado,\n linkBoleto: ticketView?.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticketView?.numero} e vencimento ${dateAdapter.format(ticketView?.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }\n\n const handleOpenPix = (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 } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { GetTicketPix, GetTickets, GetTicketsParams, OpenBankSlip, PayWithCreditCard } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ActionsButtons, Box, ScrollToTopButton, PageHeader, CardList } from '@/presentation/components'\nimport { ticketsState, SideFilters, ticketsFiltersState, CardTicket, ModalTicketPix, isOpenFinancialFiltersState, FiltersChipPanel, isLoadingFinancialState, TicketView, AddOtherCreditCard } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype FinancialProps = {\n getTickets: GetTickets\n getTicketPix: GetTicketPix\n payWithCreditCard: PayWithCreditCard\n openBankSlip: OpenBankSlip\n dateAdapter: DateAdapter\n}\n\nexport const Financial: React.FC = ({\n dateAdapter,\n getTickets,\n getTicketPix,\n payWithCreditCard,\n openBankSlip\n}) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const [refreshing, setRefreshing] = useState(false)\n const [tickets, setTickets] = useRecoilState(ticketsState)\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const filters = useRecoilValue(ticketsFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const RN_TOTAL_ITEMS_SHOW = isMobile ? 2 : 5\n\n const currentTicket = tickets?.find(ticket => dateAdapter.parse(ticket.vencimento).getMonth() === dateAdapter.today().getMonth()) ?? tickets[0]\n const orderTickets = tickets?.filter(ticket => ticket.codInterno !== currentTicket.codInterno)\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleRefreshing = (): void => {\n setRefreshing(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setRefreshing(false))\n }\n\n const scrollToTop = useCallback((): void => {\n if (scrollViewRef.current) {\n (scrollViewRef.current as any).scrollTo({ y: 0, animated: true })\n }\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n }\n >\n \n }\n openFilters={handleOnFilter}\n />\n \n \n {currentTicket &&\n \n }\n {orderTickets?.map(ticket =>\n \n )}\n \n \n \n {tickets?.length > RN_TOTAL_ITEMS_SHOW &&\n !isOpen &&\n \n \n \n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Financial } from '@/presentation/pages/Financial'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetTicketPix, makeGetTickets, makeOpenBankSlip, makePayWithCreditCard } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeFinancialFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import 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 = ({ width, height, minHeight }) => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const themeClient = getThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useRecoilState(logoEmpresaState)\n const isSvg = !logoEmpresa\n\n useEffect(() => {\n if ((themeClient.imageLogo) && (!__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, ForgotPasswordParams } 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 = ({ forgotPassword }) => {\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: ForgotPasswordParams = {\n email: state.recoveryEmail,\n documento: state.document\n }\n\n 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, AuthenticationParams, AuthenticationAdmin, AuthenticationAdminParams } 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 authenticationAdmin: AuthenticationAdmin\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: AuthenticationParams = {\n username: state.username,\n password: state.password\n }\n\n const accessWithAdministrator = dataAuth.username.toLocaleLowerCase().endsWith('@insidesistemas.com.br')\n if (accessWithAdministrator) {\n loginWithAdministrator({ Email: dataAuth.username, Senha: dataAuth.password })\n } else {\n const accessWithDocument = dataAuth.username.replace(/\\.|-/gm, '').replace(/\\D/g, '').length > 10\n if (accessWithDocument || dataAuth.username.includes('@')) {\n loginWithDocument(dataAuth)\n } else {\n loginWithCode(dataAuth)\n }\n }\n }\n\n const loginWithCode = (params: AuthenticationParams): void => {\n setLoading(true)\n props.authentication\n .auth(params)\n .then(async authToken => {\n login(authToken)\n reset()\n if (params.username.toUpperCase() !== 'ADMIN') {\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: AuthenticationParams): 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 const loginWithAdministrator = (params: AuthenticationAdminParams): void => {\n setLoading(true)\n props.authenticationAdmin\n .auth(params)\n .then(async (authToken) => {\n login(authToken)\n reset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (savedUser.saveUsername) {\n setState(currentState => ({ ...currentState, username: savedUser.username }))\n setSelection(true)\n }\n }, [])\n\n return (\n \n \n\n \n \n \n Portal do Cliente\n handleChangeInput('username', text)}\n value={state.username}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n handleChangeInput('password', text)}\n value={state.password}\n render={(props) =>\n {\n event.key.toString().toLowerCase() === 'enter' && handleSubmit()\n }}\n />\n }\n />\n \n \n Salvar usuário\n \n setSelection(!isSelected)}\n />\n \n \n \n setOpenForgotPassword(true)}\n >\n Esqueci minha senha\n \n \n \n \n \n {prospectConfigs?.ativo && prospectInterestArea?.length > 0 &&\n \n \n { 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, makeAuthenticationAdmin } 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: !isNaN(+currentClient) ? +currentClient : 9303,\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 }, [currentClient])\n )\n\n return (\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Home } from '@/presentation/pages/Home'\nimport { makeGetClientByCode, makeMetricsLogin } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeHomeFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { SaveCreditCard, GetCreditCard, GetCreditCardParams, SaveCreditCardParams } from '@/domain/usecases'\nimport { CardFlagsTypes, cardMaskByFlag } from '@/domain/models'\nimport { useAuth, useCreditCard, useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, creditCardState, CreditCard, isEditableState, isLoadingState, isOpenEditConfirmationState, ModalModalEditConfirmation } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\ntype CartaoProps = {\n getCard: GetCreditCard\n saveCard: SaveCreditCard\n}\n\nexport const Cartao: React.FC = ({ getCard, saveCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { getCreditCardType } = useCreditCard()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isEditable, setEditable] = useRecoilState(isEditableState)\n const setOpenEditConfirmation = useSetRecoilState(isOpenEditConfirmationState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n setEditable(false)\n\n const getCardParams: GetCreditCardParams = {\n codCliente: client.codCliente\n }\n\n getCard\n .getByClient(getCardParams)\n .then((card) => {\n if (card) {\n setCreditCard(card)\n setEditable(false)\n } else {\n setEditable(true)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const isValidDataCard = useCallback((): boolean => {\n if (\n !creditCard.nome ||\n !creditCard.numero ||\n !creditCard.expiracao ||\n creditCard.expiracao.length < 4 ||\n !creditCard.expiracao.includes('/') ||\n !creditCard.ccv ||\n creditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }, [creditCard])\n\n const handleSaveCreditCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const saveCardParams: SaveCreditCardParams = {\n codCliente: client.codCliente,\n email: client.email,\n unidade: client.unidade,\n type: getCreditCardType(creditCard.numero),\n mask: cardMaskByFlag[creditCard.type],\n ccv: creditCard.ccv,\n expiracao: creditCard.expiracao,\n nome: creditCard.nome,\n numero: creditCard.numero\n }\n\n if (isValidDataCard()) {\n setLoading(true)\n\n saveCard\n .save(saveCardParams)\n .then(notify.show)\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados do cartão devem ser informados'))\n }\n }\n\n const handleResetCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n {(isLoading || !isEditable) &&\n { setOpenEditConfirmation(true) }}\n />\n }\n {(!isLoading && isEditable) &&\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Cartao } from '@/presentation/pages/Cartao'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetCreditCard, makeSaveCreditCard } from '@/main/factories/usecases'\n\nexport const makeCardFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { AcceptDigitalModel } from '@/domain/models'\n\nexport const isLoadingAcceptDigitalState = atom({\n key: 'isLoadingAcceptDigitalState',\n default: true\n})\n\nexport const acceptDigitalState = atom({\n key: 'acceptDigitalState',\n default: [] as AcceptDigitalModel[]\n})\n\nexport const currentAcceptDigitalState = atom({\n key: 'currentAcceptDigitalState',\n default: -1\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 600,\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n gap: 8\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500'\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, Pressable } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { theme } from '@/presentation/styles'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Text, Chip, VStack, Clipboard, MenuActions, IconButton, Menu, Box, Divider, HStack } from '@/presentation/components'\nimport { currentAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype CardAcceptDigitalProps = {\n accept: AcceptDigitalModel\n dateAdapter: DateAdapter\n openUrlDocAccept: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const CardAcceptDigital: React.FC = ({\n accept,\n dateAdapter,\n openUrlDocAccept,\n openDocumentAccept\n}) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [currentAcceptDigital, setCurrentAcceptDigital] = useRecoilState(currentAcceptDigitalState)\n\n const isAuthorized = accept.statusAceite === 'Autorizado'\n\n const handleOpenUrlDocument = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const viewParams = {\n statusAceite: accept.statusAceite,\n urlAceite: accept.urlAceite\n }\n\n openUrlDocAccept\n .view(viewParams)\n .then(() => notify.show('O aceite digital foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleOpenDocumentAccept = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const openParams: OpenDocumentAcceptParams = {\n statusAceite: accept.statusAceite,\n codigoAceite: accept.idAceite\n }\n\n openDocumentAccept\n .open(openParams)\n .then(() => notify.show('O documento foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleCopyHash = (hash: string): void => {\n Clipboard.setString(hash)\n notify.show('Hash do Aceite Digital copiado com sucesso')\n }\n\n const handleOpenMenu = (idAceite: number): void => {\n setCurrentAcceptDigital(idAceite)\n }\n\n const handleCloseMenu = useCallback((): void => {\n setCurrentAcceptDigital(-1)\n }, [])\n\n const colorType = {\n Orçamento: theme.colors.primary,\n Contrato: theme.colors.info,\n Aditivo: theme.colors.pink,\n default: theme.colors.primary\n }[accept.tipoAceite]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const statusChipContainer = {\n ...styles,\n backgroundColor: !isAuthorized ? theme.colors.secondary : theme.colors.success\n }\n\n return (\n \n \n \n {accept.emailEnvio}\n \n = 0 && currentAcceptDigital === accept.idAceite}\n onDismiss={handleCloseMenu}\n anchor={\n handleOpenMenu(accept.idAceite)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }\n testID='aceite-digital-opcoes'\n />\n }>\n {isAuthorized &&\n }\n />\n }\n }\n />\n \n \n\n \n \n \n \n \n {'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})\n","import React, { useCallback, useState } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { ActivityIndicator, Box, CardBase, dateAdapterAtom, IconButton, Menu, MenuActions, Text } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { isLoadingOpenNfState, nfsConfigState } from '../atom'\nimport { styles } from './styles'\n\ntype CardNfseProps = {\n nfse: NFModel\n openNfse: OpenNfse\n index: number\n}\n\nexport const CardNfse: React.FC = ({ nfse, openNfse, index }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const nfsConfigs = useRecoilValue(nfsConfigState)\n const dateAdapter = useRecoilValue(dateAdapterAtom)\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [isLoadingOpenNfse, setLoadingOpenNfse] = useRecoilState(isLoadingOpenNfState)\n const handleError = useErrorHandler()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenNfse = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoadingOpenNfse(true)\n const openNfseParams: OpenNfseParams = {\n codEmpresa: nf.empresa,\n codUnidade: nf.unidade,\n numeroRPS: nf.notaNumero,\n serieRps: nf.notaSerie,\n linkAutenticidade: nf.linkAutenticidade,\n utilizarDevExpress: nf.utilizarDevExpress\n }\n\n openNfse\n .open(openNfseParams)\n .then(() => notify.show(`A Nfse ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoadingOpenNfse(false))\n }, [])\n\n return (\n \n \n {nfse.notaNumeroNFSE}/{nfse.notaSerie}\n {!isLoadingOpenNfse &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n testID='notas-servicos-opcoes'\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }>\n }>\n {((nfse.linkAutenticidade || nfse.utilizarDevExpress) && !nfsConfigs.ocultaLink)\n ? handleOpenNfse(event, nfse)}\n title=\"Abrir Link NFSe\"\n testID='notas-servicos-abrir-nfse'\n leadingIcon={props => }\n />\n : <>\n }\n {nfse.linkConsultaNotaPortal\n ? window.open(nfse.linkConsultaNotaPortal, '_blank')}\n title=\"Link para consulta da NFSe\"\n testID='notas-servicos-consulta'\n leadingIcon={props => }\n />\n : <>\n }\n \n }\n \n {(isLoadingOpenNfse && currentIndex === index)\n ? \n : <>\n Valor: {formatCurrency(nfse.notaValor)}\n Emissão: {dateAdapter.format(dateAdapter.parse(nfse.notaData), 'DD/MM/YYYY')}\n \n }\n \n )\n}\n","import React from 'react'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenNfsFiltersState, nfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenNfsFiltersState)\n const filters = useRecoilValue(nfsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n return (\n \n setOpen(true)}\n />\n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n ...layoutStyles.pageContent,\n marginVertical: 0,\n marginHorizontal: 'auto'\n },\n cardArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n bold: {\n fontWeight: '600'\n },\n title: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n emptyNf: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n gap: 16\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, PageHeader, CardList, CardBase } from '@/presentation/components'\nimport { FiltersChipPanel, isLoadingNfState, isOpenNfsFiltersState, leaseReceiptState } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype LeaseReceiptProps = {\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const LeaseReceipt: React.FC = ({ openLeaseReceipt, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const handleError = useErrorHandler()\n const leaseReceipts = useRecoilValue(leaseReceiptState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenLeaseReceipt = useCallback((event: GestureResponderEvent, recibo: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openLeaseReceiptParams: OpenLeaseReceiptParams = {\n codigoRecibo: recibo.nfNumeroNota\n }\n\n openLeaseReceipt\n .open(openLeaseReceiptParams)\n .then(() => notify.show(`O recibo de locação Nº ${recibo.notaNumero} foi aberto em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Recibos de Locação'\n openFilters={handleOnFilter}\n />\n \n \n {leaseReceipts?.map((recibo, index) => (\n \n \n {recibo.notaNumero.toString().padStart(6, '')}/{recibo.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n testID='notas-recibo-locacao-opcoes'\n style={{ width: 24, height: 24 }}\n icon={(props: any) => }>\n }\n >\n handleOpenLeaseReceipt(event, recibo)}\n title=\"Visualizar Recibo de Locação\"\n testID='notas-recibo-locacao-visualizar-recibo'\n leadingIcon={props => }\n />\n \n \n Valor: {formatCurrency(recibo.notaValor)}\n Emissão: {new Date(recibo.notaData).toLocaleDateString('pt-BR')}\n \n ))}\n \n \n \n )\n}\n","import React, { useCallback, useState } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { NFModel } from '@/domain/models'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { MenuActions, Menu, Box, HStack, IconButton, Text, CardList, PageHeader, CardBase } from '@/presentation/components'\nimport { nfState, isLoadingNfState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { styles } from '../../styles'\n\ntype NFProductProps = {\n openDanfe: OpenDanfe\n dateAdapter: DateAdapter\n}\n\nexport const NFProduct: React.FC = ({ openDanfe, dateAdapter }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [nfs] = useRecoilState(nfState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const client = getClient()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenDanfe = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openDanfeParams: OpenDanfeParams = {\n cliCodigo: client.codCliente,\n notaFiscal: nf\n }\n\n openDanfe\n .open(openDanfeParams)\n .then(() => notify.show(`A DANFE da NFº ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Produto'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nf, index) => (\n \n \n {nf.notaNumero.toString().padStart(6, '0')}/{nf.notaSerie}\n {!!nf.notaProcNFE &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 32, height: 32 }}\n testID='notas-produto-opcoes'\n icon={(props: any) => }>\n }>\n handleOpenDanfe(event, nf)}\n title=\"Visualizar Danfe\"\n testID='notas-produto-visualizar-danfe'\n leadingIcon={props => }\n />\n \n }\n \n Valor: {formatCurrency(nf.notaValor)}\n Emissão: {new Date(nf.notaData).toLocaleDateString('pt-BR')}\n {!nf.notaProcNFE &&\n \n \n \n Não existe xml para a NF\n \n \n }\n \n ))}\n \n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, DatePicker, SideFilter, InputField, Divider } from '@/presentation/components'\nimport { nfsState, nfsFiltersState, nfsConfigState, nfState, leaseReceiptState, isLoadingNfState, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideDrawerProps = {\n getNFs: GetNFs\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getNFs, dateAdapter }) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [filters, setFilters] = useRecoilState(nfsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [isOpen, setOpen] = useRecoilState(isOpenNfsFiltersState)\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n\n const client = getClient()\n\n useEffect(() => {\n const initFilters = {\n isOpen: false,\n dataInicio: dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO).toString(),\n dataFim: dateAdapter.today().toString()\n }\n\n if (!filters.dataInicio || !filters.dataFim) {\n setFilters(initFilters)\n }\n }, [])\n\n const handleResetState = (): void => {\n setFilters(currentState => ({\n ...currentState,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n }))\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getNFs\n .get(paramsGetTicket)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO))}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n />\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenNfsFiltersState = atom({\n key: 'isOpenNfsFiltersState',\n default: false\n})\n\nexport const nfsFiltersState = atom({\n key: 'nfsFiltersState',\n default: {\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useSetRecoilState } from 'recoil'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { GetNFs, GetNFsParams, OpenDanfe, OpenLeaseReceipt, OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { nfsState, SideFilters, NFProduct, NFService, LeaseReceipt, isLoadingNfState, leaseReceiptState, nfState, nfsConfigState } from '@/presentation/pages/NotaFiscal/components/'\nimport { styles } from './styles'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype NotaFiscalProps = {\n getNFs: GetNFs\n openDanfe: OpenDanfe\n openNfse: OpenNfse\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const NotaFiscal: React.FC = ({\n getNFs,\n openDanfe,\n openNfse,\n openLeaseReceipt,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n const setLoading = useSetRecoilState(isLoadingNfState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const getNFsParams: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'DD-MM-YYYY'),\n dtFinal: dateAdapter.format(dateAdapter.today(), 'DD-MM-YYYY')\n }\n\n getNFs\n .get(getNFsParams)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n\n \n NFService({ openNfse, dateAdapter })} />\n NFProduct({ openDanfe, dateAdapter })} />\n LeaseReceipt({ openLeaseReceipt, dateAdapter })} />\n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { nfsState, isLoadingNfState, FiltersChipPanel, CardNfse, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype NFServiceProps = {\n openNfse: OpenNfse\n dateAdapter: DateAdapter\n}\n\nexport const NFService: React.FC = ({ openNfse, dateAdapter }) => {\n const theme = useTheme()\n const isLoading = useRecoilValue(isLoadingNfState)\n const nfs = useRecoilValue(nfsState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Serviço'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nfse, index) => \n \n )}\n \n \n \n )\n}\n","import React from 'react'\nimport { NotaFiscal } from '@/presentation/pages/NotaFiscal'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetRemoteGetNFs, makeOpenDanfe, makeOpenNfse, makeOpenLeaseReceipt } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeNFFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { Claim, ClaimsResult, ServiceType } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'isLoadingSacState',\n default: true\n})\n\nexport const sacState = atom({\n key: 'sacState',\n default: {\n listaReclamacoes: [] as Claim[],\n listaTipoAtendimento: [] as ServiceType[]\n } as ClaimsResult\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Claim } from '@/domain/models/sac-model'\nimport { DateAdapter } from '@/data/protocols'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { Text, Chip, VStack, Box, Divider, HStack } from '@/presentation/components'\nimport { sacState } from '@/presentation/pages/Sac/components'\nimport { CircleIcon } from '@/presentation/pages/ServiceOrders/components/CardOs/styles'\nimport { useRecoilValue } from 'recoil'\n\ntype CardSacProps = {\n sac: Claim\n dateAdapter: DateAdapter\n}\n\nexport const CardSac: React.FC = ({ sac, dateAdapter }: CardSacProps) => {\n const { isMobile } = useMediaQueries()\n const { listaTipoAtendimento } = useRecoilValue(sacState)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const colorType = {\n E: theme.colors.success,\n R: theme.colors.error,\n S: theme.colors.info\n }[sac.tipo]\n\n const sacType = listaTipoAtendimento?.find(tipo => tipo.codigo === sac.tipo)?.descricao ?? 'Não informado'\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n {sac.reclamante.toUpperCase()}\n \n \n Nº {sac.codReclamacao}\n \n \n\n \n\n \n \n \n \n Abertura:\n \n {dateAdapter.format(sac.data, 'DD/MM/YYYY HH:mm:ss')}\n \n \n \n Descrição:\n \n {sac.reclamacao}\n \n \n \n\n \n \n Tipo:\n \n {sacType &&\n \n }\n \n \n \n )\n}\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n marginLeft: 4,\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React, { useCallback } from 'react'\nimport { StyleSheet, GestureResponderEvent } from 'react-native'\nimport { Box, Button, Text, TextInput } from '@react-native-material/core'\nimport { RadioButton } from 'react-native-paper'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Claim } from '@/domain/models'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase } from '@/presentation/components'\nimport { isLoadingNewSacState, isOpenNewSacState, sacNewState, sacState } from '@/presentation/pages/Sac/components'\n\ntype ModalNewSacParams = {\n tipo: 'E' | 'R' | 'S'\n tipoDescricao: 'ELOGIO' | 'RECLAMAÇÃO' | 'SUGESTÃO'\n reclamante: string\n reclamacao: string\n}\n\ntype ModalNewSacProps = {\n createSac: CreateSac\n dateAdapter: DateAdapter\n}\n\nexport const ModalNewSac: React.FC = ({ createSac, dateAdapter }: ModalNewSacProps) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [newSac, setNewSac] = useRecoilState(sacNewState)\n const setSacs = useSetRecoilState(sacState)\n const setLoading = useSetRecoilState(isLoadingNewSacState)\n const [isOpen, setOpen] = useRecoilState(isOpenNewSacState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof ModalNewSacParams, value: string): void => {\n setNewSac(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n const typeDescription = {\n E: 'ELOGIO',\n S: 'SOLICITAÇÃO',\n R: 'RECLAMAÇÃO'\n }[newSac.tipo]\n\n const dateParam = dateAdapter.today().toString()\n\n const createSacParams: CreateSacParams = {\n reclamante: newSac.reclamante,\n reclamacao: newSac.reclamacao,\n codCliente: client.codCliente,\n tipo: newSac.tipo,\n data: dateParam,\n hora: dateParam,\n dataAbertura: dateParam,\n nomeCliente: client.nomeCliente,\n dataAcaoImediata: dateParam,\n dataAcaoCorretiva: dateParam,\n unidade: client.unidade,\n tipoDescricao: typeDescription\n }\n\n createSac\n .create(createSacParams)\n .then(codigo => {\n if (codigo) {\n successNewSac(createSacParams, codigo as unknown as string)\n resetNewSac()\n } else {\n throw new Error('Não foi possível gravar o SAC!')\n }\n })\n .catch(handleError)\n .finally(handleCloseModal)\n }\n\n const successNewSac = (createSacParams: CreateSacParams, codigo: string): void => {\n setSacs(currentState => ({\n ...currentState,\n listaReclamacoes: [\n ...currentState.listaReclamacoes,\n {\n ...createSacParams as unknown as Claim,\n codReclamacao: parseInt(codigo)\n }\n ]\n }))\n\n notify.success('SAC gravado com sucesso')\n }\n\n const resetNewSac = (): void => {\n setLoading(false)\n setOpen(false)\n setNewSac(currentState => ({\n ...currentState,\n reclamacao: '',\n reclamante: '',\n tipo: 'E',\n tipoDescricao: 'ELOGIO'\n }))\n }\n\n const handleCloseModal = useCallback((): void => {\n setLoading(false)\n setOpen(false)\n }, [])\n\n return (\n \n \n Preencha os dados para criar um SAC\n\n \n \n handleChangeInput('tipo', 'E')}\n />\n \n Elogio\n \n \n \n handleChangeInput('tipo', 'S')}\n />\n \n Solicitação\n \n \n \n handleChangeInput('tipo', 'R')}\n />\n \n Reclamação\n \n \n \n\n handleChangeInput('reclamante', text)}\n testID='sac-nome'\n value={newSac.reclamante}\n />\n handleChangeInput('reclamacao', text)}\n value={newSac.reclamacao}\n multiline\n />\n\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n textOrderStyles: {\n fontSize: 14,\n fontWeight: '400'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingNewSacState = atom({\n key: 'isLoadingNewSacState',\n default: true\n})\n\nexport const isOpenNewSacState = atom({\n key: 'isOpenNewSacState',\n default: false\n})\n\nexport const sacNewState = atom({\n key: 'newSacForm',\n default: {\n isLoading: false,\n tipo: 'E' as 'E' | 'R' | 'S',\n tipoDescricao: 'ELOGIO' as 'ELOGIO' | 'RECLAMAÇÃO' | 'SOLICITAÇÃO',\n reclamante: '',\n reclamacao: ''\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch',\n position: 'relative'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnContainer: {\n position: 'absolute',\n bottom: 16,\n right: 32\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { CreateSac, GetSacList } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { sacState, ModalNewSac, CardSac, isLoadingState, isOpenNewSacState } from '@/presentation/pages/Sac/components'\nimport { useAuth, useErrorHandler, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SacProps = {\n dateAdapter: DateAdapter\n getSacList: GetSacList\n createSac: CreateSac\n}\n\nexport const Sac: React.FC = ({ dateAdapter, getSacList, createSac }: SacProps) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [sacs, setSacs] = useRecoilState(sacState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const setOpenNewSac = useSetRecoilState(isOpenNewSacState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getSacList\n .get({ codigoCliente: client.codCliente })\n .then(setSacs)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleOpenNewSac = (): void => {\n setOpenNewSac(true)\n }\n\n return (\n \n \n \n }\n />\n \n {sacs.listaReclamacoes?.map(item => (\n \n ))}\n \n \n\n \n \n } color={themeClient.mainColor}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { Sac } from '@/presentation/pages/Sac'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeCreateSac, makeGetSacList } from '@/main/factories/usecases'\n\nexport const makeSacFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { SigmaCloudKeyResult, SowillKeyResult, SowillIdentifier } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const sigmaKeysState = atom({\n key: 'sigmaKeyState',\n default: [] as SigmaCloudKeyResult\n})\n\nexport const sowillKeysState = atom({\n key: 'sowillKeysState',\n default: [] as SowillKeyResult\n})\n\nexport const sowillIdentifierState = atom({\n key: 'sowillIdentifierState',\n default: {\n codInternoChave: 0,\n idCliente: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetSigmaEvents, SigmaFilterType } from '@/domain/usecases'\nimport { Box, DatePicker, SideFilter, Text } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { monitoringDateFiltersState, isLoadingMonitoringEventState, isOpenMonitoringFiltersState, SelectTypeSigmaEvent, remotyFilterState, sigmaFilterState, monitoringListHasError } from '@/presentation/pages/Events/components'\n\ntype SideFiltersProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SideFilters: React.FC = ({\n dateAdapter\n}) => {\n const { getClient } = useAuth()\n const client = getClient()\n\n const [monitoringFilterDate, setMonitoringFilterDate] = useRecoilState(monitoringDateFiltersState)\n const setRemotyFilter = useSetRecoilState(remotyFilterState)\n const setSigmaFilter = useSetRecoilState(sigmaFilterState)\n const [isOpen, setOpen] = useRecoilState(isOpenMonitoringFiltersState)\n const setNoMonitoringError = useSetRecoilState(monitoringListHasError)\n\n const [localFilterDate, setLocalFilterDate] = React.useState({\n dataInicial: '',\n dataFinal: ''\n })\n\n const isLoading = useRecoilValue(isLoadingMonitoringEventState)\n\n const handleResetState = (): void => {\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: '',\n dataFinal: ''\n })\n )\n\n setRemotyFilter({ remotyIdEquipamento: 0, remotyNmEquip: '' })\n\n setSigmaFilter({ sigmaTipo: null as unknown as SigmaFilterType, sigmaTituloChip: '' })\n }\n\n const handleClose = (): void => setOpen(false)\n\n useFocusEffect(\n useCallback(() => {\n handleResetState()\n }, [])\n )\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpen(false)\n setNoMonitoringError(false)\n\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: localFilterDate.dataInicial,\n dataFinal: localFilterDate.dataFinal\n }))\n }\n\n const handleChangeDate = useCallback((date: Date): void => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS, date).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(date.toString(), 'YYYY-MM-DD')\n\n setLocalFilterDate({ dataInicial, dataFinal })\n }, [])\n\n return (\n \n \n \n Referente aos 30 dias anteriores à data selecionada.\n handleChangeDate(date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n\n \n {([ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && (\n \n \n \n \n )) as React.ReactElement || undefined}\n \n )\n}\n","import { atom } from 'recoil'\nimport { SigmaFilterType } from '@/domain/usecases'\n\nexport const isOpenMonitoringFiltersState = atom({\n key: 'isOpenMonitoringFiltersState',\n default: false\n})\n\nexport const monitoringDateFiltersState = atom({\n key: 'monitoringDateFiltersState',\n default: {\n dataInicial: '',\n dataFinal: ''\n }\n})\n\nexport const remotyFilterState = atom({\n key: 'remotyFilterState',\n default: {\n remotyIdEquipamento: 0,\n remotyNmEquip: ''\n }\n})\n\nexport const sigmaFilterState = atom({\n key: 'sigmaFilterState',\n default: {\n sigmaTipo: null as unknown as SigmaFilterType,\n sigmaTituloChip: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n margin: 15,\n cursor: 'pointer'\n },\n selectInput: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n fontSize: 16,\n borderWidth: 1,\n borderColor: '#ccc',\n borderRadius: 4,\n backgroundColor: '#fff'\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\n },\n modalContent: {\n backgroundColor: '#fff',\n padding: 20,\n borderRadius: 8,\n width: 200\n },\n optionItem: {\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#ccc'\n }\n})\n","import React, { useState } from 'react'\nimport { View, Text, Modal, TouchableOpacity, TouchableWithoutFeedback } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { SigmaFilterTitle } from '@/domain/usecases'\nimport { sigmaFilterState } from '../SideFilters/atom'\nimport { AntDesign } from '@expo/vector-icons'\nimport { styles } from './styles'\n\nenum sigmaEventsFilterType {\n 'Todos' = 'rbTodos',\n 'Alarme' = 'rbAlarme',\n 'Teste Automático' = 'rbTstAuto',\n 'Armado' = 'rbArmado',\n 'Desarmado' = 'rbDesarmado',\n 'Sem Controle' = 'rbSControle',\n 'Desarmado ronda' = 'rbRonda'\n}\n\nexport const SelectTypeSigmaEvent = (): JSX.Element => {\n const [modalVisible, setModalVisible] = useState(false)\n const [filters, setFilters] = useRecoilState(sigmaFilterState)\n\n const sigmaFilterTitle: SigmaFilterTitle[] = ['Todos', 'Alarme', 'Teste Automático', 'Armado', 'Desarmado', 'Sem Controle', 'Desarmado ronda']\n\n const handleOpenModal = (): void => {\n setModalVisible(true)\n }\n\n const handleCloseModal = (): void => {\n setModalVisible(false)\n }\n\n const handleOptionPress = (option: SigmaFilterTitle): void => {\n const sigmaTipo = option.length ? sigmaEventsFilterType[option] : 'rbTodos'\n\n setFilters(currentFilters => ({\n ...currentFilters,\n sigmaTipo,\n sigmaTituloChip: option\n }))\n\n setModalVisible(false)\n }\n\n const stylesContainer = {\n ...styles,\n margin: 0\n }\n\n return (\n \n \n \n {filters.sigmaTituloChip || 'Tipos de eventos'}\n <>\n \n \n\n \n \n \n {sigmaFilterTitle.map((option) => (\n handleOptionPress(option)}\n style={styles.optionItem}\n >\n {option}\n \n ))}\n \n \n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { CentralMonitoring } from '@/domain/models'\nimport { useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { contactListHasError, monitoringListHasError, remotyFilterState, sectorListHasError, userListHasError } from '@/presentation/pages/Events/components'\n\nexport const SelectRemotyEventCompany: React.FC = () => {\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentCompany, setCompany] = useRecoilState(remotyFilterState)\n const setEventError = useSetRecoilState(monitoringListHasError)\n const setSectorError = useSetRecoilState(sectorListHasError)\n const setUserError = useSetRecoilState(userListHasError)\n const setContactError = useSetRecoilState(contactListHasError)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const companies = client?.centraisMonitoramento\n\n const onSelectCompany = (company: CentralMonitoring): void => {\n setCompany({ remotyIdEquipamento: company.idEquipment, remotyNmEquip: company.nmEquipment })\n }\n\n const handleSelectCompany = (company: CentralMonitoring): void => {\n onSelectCompany(company)\n setMenuOpen(false)\n\n setEventError(false)\n setSectorError(false)\n setUserError(false)\n setContactError(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {companies.map((company) => (\n handleSelectCompany(company)}\n title={company.nmEquipment}\n />\n ))}\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const sigmaTypeEventState = atom({\n key: 'typeSigmaEventState',\n default: [\n { _id: 'Todos', value: 'rbTodos' },\n { _id: 'Alarme', value: 'rbAlarme' },\n { _id: 'Teste Automático', value: 'rbTstAuto' },\n { _id: 'Armado', value: 'rbArmado' },\n { _id: 'Desarmado', value: 'rbDesarmado' },\n { _id: 'Sem Controle', value: 'rbSControle' },\n { _id: 'Desarmado ronda', value: 'rbRonda' }\n ]\n})\n\nexport type SigmaTypes = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\n","import { atom } from 'recoil'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\n\nexport const selectSigmaCloudKeyData = atom({\n key: 'selectSigmaCloudKeyData',\n default: {} as SigmaCloudKeyResponseModel\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { selectSigmaCloudKeyData } from './atom'\nimport { sigmaKeysState } from '../atom'\n\nexport const SelectSigmaCloudKey: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentKey, setCurrentKey] = useRecoilState(selectSigmaCloudKeyData)\n const keys = useRecoilValue(sigmaKeysState)\n const themeClient = getThemeClient()\n const { isMobile } = useMediaQueries()\n\n const handleSelectCompany = (company: SigmaCloudKeyResponseModel): void => {\n setCurrentKey(company)\n setMenuOpen(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((key) => (\n handleSelectCompany(key)}\n title={`Empresa: ${key.empresaSigma.toString()} - Chave: ${key.chave}/${key.particao}`}\n />\n ))}\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenMonitoringFiltersState, monitoringDateFiltersState, remotyFilterState, selectSigmaCloudKeyData, sowillIdentifierState } from '@/presentation/pages/Events/components'\nimport { ClientMonitoringType } from '@/domain/models'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const filters = useRecoilValue(monitoringDateFiltersState)\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const notify = useNotify()\n\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n\n const client = getClient()\n\n const period = filters.dataInicial && filters.dataFinal\n ? `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')} até ${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : filters.dataFinal\n ? `${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')}`\n\n const handleOpen = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n \n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams, GetRemotyEvents, GetRemotyEventsParams, GetSigmaEvents, GetSigmaEventsParams, PrintEvents, GetSowillEvents, GetSowillEventsParams, GetSowillIdentifier } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB, CardList, PageHeader, ActionsButtons, Stack } from '@/presentation/components'\nimport { FiltersChipPanel, CardMonitoringEvent, monitoringDateFiltersState, isOpenMonitoringFiltersState, SelectRemotyEventCompany, SelectSigmaCloudKey, SelectSowillKey, monitoringEventListState, isLoadingMonitoringEventState, sowillIdentifierState, selectSigmaCloudKeyData, remotyFilterState, monitoringListHasError, sigmaFilterState } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useFocusEffect } from '@react-navigation/native'\n\ntype MonitoringListEventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getMoniEvents: GetMoniEvents\n getSigmaEvents: GetSigmaEvents\n getRemotyEvents: GetRemotyEvents\n getSowillEvents: GetSowillEvents\n getSowillIdentifier: GetSowillIdentifier\n}\n\nexport const MonitoringEventList: React.FC = ({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents\n}) => {\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n\n const [isLoading, setLoading] = useRecoilState(isLoadingMonitoringEventState)\n const [monitoringEventList, setMonitoringEventList] = useRecoilState(monitoringEventListState)\n const [hasError, setHasError] = useRecoilState(monitoringListHasError)\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const [filters, setFilters] = useRecoilState(monitoringDateFiltersState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sigmaFilterType = useRecoilValue(sigmaFilterState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n setFilters({ dataInicial, dataFinal })\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n if (conditions && !hasError) { getEventsMonitoring() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n filters.dataInicial,\n sigmaFilterType.sigmaTipo,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetRemotyEventsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento,\n dtInicio: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dtFim: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate\n }\n\n setLoading(true)\n\n getRemotyEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetMoniEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetMoniEventsParams = {\n unidade: client.unidade.toString(),\n empresaMoni: client.empresaMonitoramento.toString(),\n codCliente: client.codCliente,\n dataInicial: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate\n }\n\n setLoading(true)\n\n getMoniEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetSigmaEventsParams = {\n empresa: client.empresa,\n cliente: currentSigmaKey.codCliente,\n dataIni: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dataFinal: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate,\n filtro: sigmaFilterType.sigmaTipo ? sigmaFilterType.sigmaTipo : GetSigmaEvents.RN.DEFAULT_FILTER_TYPE,\n idSigma: currentSigmaKey.empresaSigma\n }\n\n getSigmaEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetSowillEventsParams = {\n dateTimeInicioManutencao: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate,\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n getSowillEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsMonitoring = {\n [ClientMonitoringType.MONI]: handleGetMoniEvent,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaEvent,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaEvent,\n [ClientMonitoringType.REMOTY]: handleGetRemotyEvent,\n [ClientMonitoringType.SO_WILL]: handleGetSowillEvent\n }[client.tipoConexao]\n\n const handlePrint = (): void => {\n let listaEventos: GenericEventModel[]\n\n if (client.tipoConexao === ClientMonitoringType.MONI) {\n listaEventos = monitoringEventList.map(event => ({\n evento: event.evento,\n dataEvento: dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss'),\n descricao: event.descricao,\n empresaSigma: client.empresaMonitoramento\n }))\n } else {\n listaEventos = monitoringEventList.map(event => ({\n ...event,\n dataEvento: client.tipoConexao === ClientMonitoringType.REMOTY\n ? event.dataEvento\n : dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss')\n }))\n }\n\n const printParams = {\n tipoConexao: client.tipoConexao,\n data: listaEventos\n }\n\n printEvents.print(printParams)\n .then(res => res)\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n console.error({ printError: error })\n })\n }\n\n const handleFilter = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n }\n openFilters={handleFilter}\n />\n\n \n {filters.dataInicial && }\n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {monitoringEventList?.map(event => (\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, GetMoniUsersParams, GetRemotyUsers, GetRemotyUsersParams, GetSigmaCloudUsers, GetSigmaCloudUsersParams, GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { CardUser, userListState, isLoadingUserEventsState, SelectRemotyEventCompany, SelectSigmaCloudKey, sowillIdentifierState, SelectSowillKey, selectSigmaCloudKeyData, remotyFilterState, userListHasError } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\ntype UserEventListProps = {\n getMoniUsers: GetMoniUsers\n getRemotyUsers: GetRemotyUsers\n getSowillUsers: GetSowillUsers\n getSigmaCloudUsers: GetSigmaCloudUsers\n}\n\nexport const UserEventList: React.FC = ({\n getMoniUsers,\n getRemotyUsers,\n getSowillUsers,\n getSigmaCloudUsers\n}: UserEventListProps) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(userListHasError)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const [isLoading, setLoading] = useRecoilState(isLoadingUserEventsState)\n const [userList, setUserList] = useRecoilState(userListState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventUser() }\n }, [\n client.codCliente,\n remotyIdEquipamento,\n currentSigmaKey,\n currentSigmaKey.codCliente,\n sowillIdentifier.codInternoChave\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetMoniUserList = (): void => {\n const params: GetMoniUsersParams = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n getMoniUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotyUserList = (): void => {\n const params: GetRemotyUsersParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotyUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillUserList = (): void => {\n const params: GetSowillUsersParams = {\n idCliente: sowillIdentifier.idCliente,\n codInternoChave: sowillIdentifier.codInternoChave\n }\n\n setLoading(true)\n\n getSowillUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaCloudUserList = (): void => {\n const params: GetSigmaCloudUsersParams = {\n codCentral: currentSigmaKey.codInterno,\n empresaSigma: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaCloudUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventUser = {\n [ClientMonitoringType.MONI]: handleGetMoniUserList,\n [ClientMonitoringType.REMOTY]: handleGetRemotyUserList,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaCloudUserList,\n [ClientMonitoringType.SIGMA_DESK]: () => { },\n [ClientMonitoringType.SO_WILL]: handleGetSowillUserList\n }[client.tipoConexao]\n\n return (\n \n }\n />\n\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {userList?.map(user => (\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 (\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}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, CardDetails, CardRow, DataTable, Text, VStack } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsTreatmentsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsTreatments: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const handlePastTime = (initialHour: string, finalHour: string): string => {\n const initialTime = new Date(`1970-01-01T${initialHour}`)\n const finalTime = new Date(`1970-01-01T${finalHour}`)\n const durationInMilliseconds = finalTime.getTime() - initialTime.getTime()\n\n const hours = Math.floor(durationInMilliseconds / 3600000)\n const minutes = Math.floor((durationInMilliseconds % 3600000) / 60000)\n const seconds = Math.floor((durationInMilliseconds % 60000) / 1000)\n\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n const handleTotalDuration = (): string => {\n let totalHours = 0\n let totalMinutes = 0\n let totalSeconds = 0\n\n serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .forEach((atendimento) => {\n const [hours, minutes, seconds] = handlePastTime(\n dateAdapter.format(atendimento.hrInicio, 'hh:mm:ss'),\n dateAdapter.format(atendimento.hrFim, 'hh:mm:ss')\n ).split(':').map(Number)\n totalHours += hours\n totalMinutes += minutes\n totalSeconds += seconds\n })\n\n totalMinutes += Math.floor(totalSeconds / 60)\n totalSeconds %= 60\n totalHours += Math.floor(totalMinutes / 60)\n totalMinutes %= 60\n\n return `${totalHours.toString().padStart(2, '0')}:${totalMinutes.toString().padStart(2, '0')}:${totalSeconds.toString().padStart(2, '0')}`\n }\n\n return (\n <>\n {!!serviceOrderDetail.listaAtendimentos?.length &&\n <>\n Atendimentos Feitos na OS\n \n \n \n \n Data\n Início\n Fim\n Responsável\n \n\n {serviceOrderDetail.listaAtendimentos\n .filter(atendimento => atendimento.tipoAtendimento !== 'D')\n .map((atendimento, index) => (\n \n \n Técnico: {atendimento.codTecnico} - {atendimento.tecnico}\n \n \n {dateAdapter.format(atendimento.data, 'DD/MM/yyyy')}\n {dateAdapter.format(atendimento.hrInicio, 'HH:mm:ss')}\n {dateAdapter.format(atendimento.hrFim, 'HH:mm:ss')}\n {atendimento.responsavel}\n \n {atendimento.observacoes &&\n \n \n Observações: {atendimento.observacoes}\n \n \n }\n \n ))}\n \n \n Total de Horas: {handleTotalDuration()}\n \n \n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, 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.data64, 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 { 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\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.data64, description: image.nomeArquivo }) }}\n style={{\n ...styles.cardBase,\n backgroundColor: theme.colors.backgroundCard,\n marginBottom: isMobile ? 12 : 24,\n padding: isMobile ? 4 : 8\n }}\n >\n \n \n {image.nomeArquivo}\n \n \n {image.nomeArquivo}\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?.data64 ?? ''\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 { DateAdapter } from '@/data/protocols'\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 dateAdapter: DateAdapter\n}\n\nexport type ServiceOrderDetailUrlModel = {\n param: string\n}\n\nexport const ServiceOrderDetail: React.FC = ({\n getServiceOrderDetail,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const 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 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'\nimport { makeDateAdapterFactory } from '@/main/adapters'\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 props.navigation.navigate(NavigationRoute.Login)\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 env from '@/main/config/env'\nimport { makeEnvironmentDecoderAdapterFactory } from '@/main/adapters'\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] &&\n (}\n onPress={() => handleClick(props)}\n />)\n ))}\n \n )\n}\n","import { atom } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\n\nexport const socialMediaState = atom({\n key: 'socialMediaState',\n default: {} as RedesSociaisModel\n})\n","import * as React from 'react'\nimport { GestureResponderEvent, Animated, StyleSheet } from 'react-native'\nimport { useTheme, useNotify, 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 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":""}