{"version":3,"sources":["screens/dashboard/monthlyCostChart/MonthlyCostChart.module.scss","screens/dashboard/chartsBoxes/ChartsBoxes.module.scss","screens/vehicles-mileage/components/VehiclesMileageFiltersScreen.module.scss","screens/vehicles-management/components/VehiclesManagementFiltersScreen.module.scss","screens/vehicle/components/carContractTab/components/invoices/Invoices.module.scss","screens/vehicle/components/carAccidentTab/components/AccidentList/ListAccidentsScreen.module.scss","screens/driver/components/driverUserTab/DriverUserTab.module.scss","screens/dashboard/nextMaintenances/NextMaintenances.module.scss","screens/dashboard/monthlyRouteChart/MonthlyRouteChart.module.scss","screens/alerts/components/alertsList/AlertsList.module.scss","screens/settings/components/genericTypesTab/components/genericTypesDetails/GenericTypesDetails.module.scss","screens/vehicle/components/carVerificationTab/components/carVerification/informationForm/InformationForm.module.scss","screens/vehicles/components/VehicleFiltersScreen.module.scss","screens/vehicles-gps/components/filters/VehicleGpsFiltersScreen.module.scss","common/components/input/Input.module.scss","common/components/counterBox/CounterBox.module.scss","common/components/fileSelector/FileSelector.module.scss","screens/vehicle/components/carAccidentTab/components/AccidentFilters/AccidentFiltersScreen.module.scss","screens/company/components/PlanFormItem.module.scss","screens/vehicles/VehiclesScreen.module.scss","common/components/button/Button.module.scss","screens/vehicles-gps/components/ecoDriving/EcoDriving.module.scss","screens/vehicles-gps/components/markerPopup/MarkerPopup.module.scss","screens/settings/components/vehicleModelTab/components/vehicleModelDetails/VehicleModelDetails.module.scss","styles/export/colors.module.scss","screens/vehicles-gps/components/currentLocation/CurrentLocation.module.scss","screens/settings/components/suppliersTab/components/suppliersList/SuppliersList.module.scss","screens/vehicle/components/carForm/technicalInformationForm/TechnicalInformationForm.module.scss","screens/vehicle/components/carForm/vehicleFuelForm/VehicleFuelForm.module.scss","screens/maintenances/components/maintenanceFilters/MaintenancesFiltersScreen.module.scss","common/services/Events.ts","common/components/loading/LoadingSpinner.tsx","common/components/loading/LoadingProvider.tsx","common/services/Utils.ts","Config.ts","common/services/Storage.ts","common/services/I18n.ts","assets/svg/FleetMax_logo_verde.svg","assets/img/welcome_inicio.png","assets/img/welcome_condutores.png","assets/img/welcome_veiculos.png","assets/img/welcome_contratosdespesasmanutenções.png","assets/img/welcome_dashboards.png","assets/img/welcome_apoioaocliente.png","assets/svg/x-circle.svg","common/components/screenHeader/ScreenHeaderButton.tsx","store/authentication/type.ts","store/authentication/action.ts","store/authentication/reducer.ts","store/alerts/type.ts","store/alerts/reducer.ts","store/reducers.ts","store/store.ts","common/services/Logger.ts","common/services/Http.ts","api/users/UsersService.ts","common/components/welcomeModal/WelcomeModal.tsx","common/routes/AuthorizeRoute.tsx","common/services/AuthorizeService.ts","api/account/AccountService.ts","common/utils/GlobalFunctions.ts","screens/identity/IdentityLoginScreen.tsx","screens/identity/IdentityLogoutScreen.tsx","assets/svg/logo.svg","assets/svg/chevron_down.svg","common/components/popover/Popover.tsx","common/components/popover/PopoverItem.tsx","assets/svg/default_photo.svg","common/components/avatar/Avatar.tsx","assets/svg/i_alertas_white.svg","common/components/alertsCounter/AlertsCounter.tsx","common/layouts/sidebar/Sidebar.tsx","api/alerts/AlertsService.ts","store/alerts/action.ts","common/components/formItem/FormItem.tsx","common/components/label/Label.tsx","common/components/input/Input.tsx","common/components/inputError/InputError.tsx","common/components/button/Button.tsx","common/services/Loading.ts","assets/svg/trash.svg","common/components/questionYesNo/QuestionYesNo.tsx","common/components/imageEditor/ImageEditor.tsx","assets/svg/asset-default-image.svg","assets/img/asset-default-image.png","common/components/mediaSelector/MediaSelector.tsx","api/tracking/enums/TrackingProvider.ts","common/components/separator/Separator.tsx","common/components/select/Select.tsx","common/components/select/SelectController.tsx","common/components/checkBox/CheckBox.tsx","common/components/checkBox/CheckBoxController.tsx","common/components/screenTitle/ScreenTitle.tsx","common/components/screenContainer/ScreenContainer.tsx","common/components/screenHeader/ScreenHeader.tsx","common/components/box/Box.tsx","api/companies/CompaniesService.ts","api/countries/CountriesService.ts","screens/new_account/NewAccountScreen.tsx","common/layouts/authenticatedLayout/AuthenticatedLayout.tsx","api/languages/LanguagesService.ts","common/components/tabs/Tabs.tsx","api/packs/enums/PackTypesEnum.ts","common/components/dateFormat/dateFormat.tsx","common/components/badge/Badge.tsx","screens/account/components/PlansScreen.tsx","screens/account/AccountScreen.tsx","screens/errors/NotFoundScreen.tsx","common/components/moneyFormat/MoneyFormat.tsx","common/components/listingTable/hRefWrap/HRefWrap.tsx","common/components/listingTable/ListingTable.tsx","assets/svg/desktop_filtres.svg","assets/svg/car.svg","assets/svg/coins.svg","assets/svg/coins_black.svg","assets/svg/media.svg","assets/svg/Grupo_352.svg","assets/svg/cone_black.svg","assets/svg/gauge.svg","assets/svg/euro.svg","assets/svg/ticket.svg","assets/svg/floor-brush.svg","api/vehicles/VehiclesService.ts","api/vehicleSegments/VehicleSegmentsService.ts","common/components/dateTimePicker/DateTimePicker.tsx","common/components/inputGroup/InputGroup.tsx","common/components/rangeInputPicker/RangeInputPicker.tsx","api/contracts/useContract/UseContractsService.ts","common/components/toggleSwitch/ToggleSwitch.tsx","screens/vehicles-management/components/VehiclesManagementFiltersScreen.tsx","common/components/iconWithText/IconWithText.tsx","common/components/filterBadge/FilterBadge.tsx","common/components/filterList/FilterList.tsx","common/components/counterBox/CounterBox.tsx","api/contracts/enums/ContractStatusColorEnum.ts","common/components/dropdown/Dropdown.tsx","common/components/deletedVehicleCircle/DeletedVehicleCircle.tsx","api/exportDataItems/ExportDataItemsService.ts","screens/vehicles-management/components/ReportColumnFilterModal.tsx","common/components/pagination/PaginationTextInfo.tsx","common/components/pagination/Pagination.tsx","common/components/pagination/PaginationWithInfo.tsx","screens/vehicles-management/VehiclesManagementScreen.tsx","common/routes/PolicyRoute.tsx","api/suppliers/SuppliersService.ts","api/tracking/TrackingService.ts","api/vehicleBrands/VehicleBrandsService.ts","api/vehicleModels/VehicleModelsService.ts","api/vehicles/enums/VehicleCondition.ts","assets/svg/Arrow-grey.svg","common/components/dateTimePicker/DateTimePickerController.tsx","common/components/input/InputController.tsx","assets/svg/desktop_add_new.svg","assets/svg/trash_no_color.svg","common/components/fileSelector/FileSelector.tsx","screens/vehicle/components/carForm/technicalInformationFormItem/TechnicalInformationFormItem.tsx","screens/vehicle/components/carForm/technicalInformationForm/TechnicalInformationForm.tsx","api/drivers/DriversService.ts","assets/svg/mobile_close.svg","common/components/qrCode/QRCode.tsx","api/locals/LocalsService.ts","screens/vehicle/components/carForm/vehicleFuelFormItem/VehicleFuelFormItem.tsx","screens/vehicle/components/carForm/vehicleFuelForm/VehicleFuelForm.tsx","screens/vehicle/components/carForm/CarForm.tsx","screens/vehicle/components/carDocumentTab/CarDocumentTab.tsx","api/contracts/enums/ContractModel.ts","api/contracts/maintenanceContract/MaintenanceContractsService.ts","api/contracts/insuranceContract/InsuranceContractsService.ts","common/components/dropdown/DropdownItem.tsx","screens/vehicle/components/carContractTab/components/listContractsScreen/ListContractsScreen.tsx","api/alertNotices/AlertNoticesService.ts","api/alertNotices/enums/AlertNoticeTypeEnum.ts","api/contracts/enums/Periodicity.ts","api/contracts/enums/TaxVat.ts","api/genericTypes/enums/GenericType.ts","common/components/dateTimePickerRange/DateTimePickerRange.tsx","common/components/inputGroup/InputGroupController.tsx","assets/svg/i_info_primaryDark.svg","common/components/dateTimePicker/DateTimePickerControllerNew.tsx","common/components/inputInfoWarning/InputInfoWarning.tsx","screens/vehicle/components/carContractTab/components/invoices/Invoices.tsx","screens/vehicle/components/carContractTab/components/useContractScreen/UseContractScreen.tsx","screens/vehicle/components/carContractTab/components/maintenanceContractsScreen/MaintenanceContractsScreen.tsx","screens/vehicle/components/carContractTab/components/insuranceContractsScreen/InsuranceContractsScreen.tsx","screens/vehicle/components/carContractTab/CarContractTab.tsx","api/dashboard/DashboardService.ts","common/components/dateTimePicker/DateRangePickerController.tsx","screens/dashboard/filters/FiltersView.tsx","screens/dashboard/filters/FiltersButton.tsx","common/components/charts/ChartLegendLabel.tsx","common/components/charts/ChartEmptyLabel.tsx","common/hooks/useIsomorphicLayoutEffect.ts","common/hooks/useEventListener.ts","common/hooks/useElementSize.ts","screens/dashboard/consumesChart/ConsumesChart.tsx","screens/dashboard/consumesChart/ConsumesChartBox.tsx","screens/dashboard/expensesChart/ExpensesChart.tsx","api/dashboard/enums/DashboardMonthlyCostTypeEnum.ts","screens/dashboard/monthlyCostChart/MonthlyCostChart.tsx","screens/dashboard/monthlyCostChart/MonthlyCostChartBox.tsx","api/vehicleMaintenances/enums/VehicleMaintenanceStates.ts","screens/dashboard/nextMaintenances/NextMaintenances.tsx","common/components/distanceFormat/DistanceFormat.tsx","screens/dashboard/monthlyRouteChart/MonthlyRouteChart.tsx","screens/dashboard/monthlyRouteChart/MonthlyRouteChartBox.tsx","screens/dashboard/chartsBoxes/ChartsBoxes.tsx","screens/vehicle/components/carDashboardTab/CarDashboardTab.tsx","api/charges/ChargesService.ts","assets/svg/mobile_search_black.svg","common/components/inputSearch/InputSearch.tsx","common/components/renderSVG/RenderSVG.tsx","api/genericTypes/GenericTypesService.ts","common/components/avatar/AvatarWithText.tsx","api/charges/enums/ChargesStatusColorEnum.ts","common/components/timeLine/TimeLine.tsx","common/components/input/InputResizable.tsx","common/components/input/InputResizableController.tsx","screens/vehicle/components/carChargeTab/components/ChargeScreen.tsx","screens/charges/components/ChargeFiltersScreen.tsx","assets/svg/file-arrow-up-solid.svg","screens/charges/ListChargesScreen.tsx","screens/vehicle/components/carChargeTab/CarChargeTab.tsx","api/vehicleMaintenances/VehicleMaintenancesService.ts","screens/maintenances/components/maintenanceFilters/MaintenancesFiltersScreen.tsx","screens/vehicle/components/carMaintenanceTab/components/MaintenanceList/MaintenanceListTable/MaintenanceListTable.tsx","screens/vehicle/components/carMaintenanceTab/components/MaintenanceList/ListMaintenancesScreen.tsx","common/components/inputGroupDate/InputGroupDate.tsx","common/components/dateWithHour/DateWithHour.tsx","screens/vehicle/components/carMaintenanceTab/components/MaintenanceScreen.tsx","screens/vehicle/components/carMaintenanceTab/CarMaintenanceTab.tsx","api/carVerification/CarVerificationService.ts","api/carVerification/enums/VerificationType.ts","api/alerts/enums/AlertSubjectEnum.ts","screens/verification/components/list-filters/VerificationFiltersScreen.tsx","assets/svg/drive.svg","assets/svg/i_verificaçoes_carro.svg","assets/svg/desktop_frais_carburant.svg","assets/svg/play2.svg","assets/svg/flag_bw.svg","assets/svg/hour-glass.svg","assets/svg/calendar_v_routine.svg","api/carVerification/enums/InterventionTypeEnum.ts","common/utils/VerificationsUtils.ts","api/alerts/enums/AlertType.ts","screens/verification/components/request-verification/RequestVerificationScreen.tsx","screens/vehicle/components/carVerificationTab/components/carVerificationList/CarVerificationList.tsx","api/diagnosticTypes/DiagnosticTypesService.ts","screens/vehicle/components/carVerificationTab/components/carVerification/informationForm/InformationForm.tsx","common/components/modal/Modal.tsx","common/components/modalImageEditor/ModalImageEditor.tsx","common/components/horizontalMediaSelector/HorizontalMediaSelector.tsx","common/components/horizontalMediaSelector/HorizontalMediaSelectorController.tsx","api/carVerification/enums/AnnotationEnum.ts","screens/vehicle/components/carVerificationTab/components/carVerification/annotationsFormItem/AnnotationsFormItem.tsx","screens/vehicle/components/carVerificationTab/components/carVerification/annotationsForm/AnnotationsForm.tsx","screens/vehicle/components/carVerificationTab/components/carVerification/addMaintenanceModal/AddMaintenanceModal.tsx","screens/vehicle/components/carVerificationTab/components/carVerification/verificationExistModal/VerificationExistModal.tsx","screens/vehicle/components/carVerificationTab/components/carVerification/CarVerification.tsx","screens/vehicle/components/carVerificationTab/CarVerificationTab.tsx","api/accidents/AccidentsService.ts","screens/vehicle/components/carAccidentTab/components/AccidentScreen.tsx","screens/vehicle/components/carAccidentTab/components/AccidentFilters/AccidentFiltersScreen.tsx","screens/vehicle/components/carAccidentTab/components/AccidentList/ListAccidentsScreen.tsx","screens/vehicle/components/carAccidentTab/CarAccidentTab.tsx","common/services/GeoLocator.ts","common/components/maps/RoutineMachine.tsx","screens/vehicles-gps/components/currentLocation/CurrentLocation.tsx","common/components/sortingDropdown/SortingDropdown.tsx","assets/svg/eco-conducao.svg","screens/vehicles-gps/components/ecoDriving/EcoDriving.tsx","screens/vehicles-gps/components/markerPopup/MarkerPopup.tsx","screens/vehicles-gps/components/recenterMap/RecenterMap.tsx","screens/vehicle/components/carGpsTab/CarGpsTab.tsx","common/utils/AlertsUtils.ts","screens/alerts/components/alertsFilters/AlertsFilters.tsx","screens/alerts/components/alertsFiltersHeader/AlertsFiltersHeader.tsx","screens/alerts/components/alertsList/AlertsList.tsx","screens/vehicle/components/carAlertsTab/CarAlertsTab.tsx","screens/vehicle/components/carMonthlyChargesTab/components/CarMonthlyChargesFiltersScreen.tsx","screens/vehicle/components/carMonthlyChargesTab/CarMonthlyChargesTab.tsx","assets/svg/calendar.svg","assets/svg/drop.svg","assets/svg/desktop_default_photo.svg","common/components/helperModal/HelperModal.tsx","common/components/info-tour/InfoTour.tsx","screens/vehicle/VehicleScreen.tsx","screens/settings/components/vehicleSegmentsTab/components/vehicleSegmentsDetails/VehicleSegmentsDetails.tsx","screens/settings/components/vehicleSegmentsTab/components/vehicleSegmentsList/VehicleSegmentsList.tsx","screens/settings/components/vehicleSegmentsTab/VehicleSegmentsTab.tsx","screens/settings/components/vehicleModelTab/components/vehicleModelsFilters/VehicleModelsFiltersScreen.tsx","screens/settings/components/vehicleModelTab/components/vehicleModelList/VehicleModelList.tsx","common/components/formController/FormController.tsx","screens/settings/components/vehicleModelTab/components/vehicleModelDetails/VehicleModelDetails.tsx","screens/settings/components/vehicleModelTab/VehicleModelTab.tsx","screens/settings/components/vehicleBrandsTab/components/vehicleBrandsDetails/VehicleBrandsDetails.tsx","screens/settings/components/vehicleBrandsTab/components/vehicleBrandsList/VehicleBrandsList.tsx","screens/settings/components/vehicleBrandsTab/VehicleBrandsTab.tsx","screens/settings/components/suppliersTab/components/suppliersDetails/SuppliersDetails.tsx","screens/settings/components/suppliersTab/components/suppliersFilters/SuppliersFiltersScreen.tsx","assets/svg/semfoto.svg","screens/settings/components/suppliersTab/components/suppliersList/SuppliersList.tsx","screens/settings/components/suppliersTab/SuppliersTab.tsx","common/components/colorPicker/ColorPicker.tsx","common/components/colorPicker/ColorPickerController.tsx","screens/settings/components/genericTypesTab/components/genericTypesDetails/GenericTypesDetails.tsx","screens/settings/components/genericTypesTab/components/genericTypesList/GenericTypesList.tsx","screens/settings/components/genericTypesTab/GenericTypesTab.tsx","api/roles/RolesService.ts","api/communications/CommunicationsService.ts","api/communications/models/CommunicationDto.ts","screens/settings/components/communicationsTab/components/communicationsDetails/CommunicationsDetails.tsx","screens/settings/components/communicationsTab/CommunicationsTab.tsx","common/components/languagesTabs/LanguagesTab.tsx","common/components/contentManagement/ContentManagement.tsx","common/components/summernoteController/SummernoteController.tsx","api/notifications/NotificationsService.ts","api/notifications/enums/NotificationMessageType.ts","screens/settings/components/notificationsTab/components/notificationsDetails/NotificationsDetails.tsx","screens/settings/components/notificationsTab/components/notificationsList/NotificationsList.tsx","screens/settings/components/notificationsTab/NotificationsTab.tsx","screens/settings/components/damageTypesTab/components/damageTypesDetails/DamageTypesDetails.tsx","screens/settings/components/damageTypesTab/components/damageTypesList/DamageTypesList.tsx","screens/settings/components/damageTypesTab/DamageTypesTab.tsx","screens/settings/components/localsTab/components/localsDetails/LocalsDetails.tsx","screens/settings/components/localsTab/components/localsList/LocalsList.tsx","screens/settings/components/localsTab/LocalsTab.tsx","screens/settings/SettingsScreen.tsx","screens/driver/components/driverUserTab/DriverUserTab.tsx","screens/security/components/rolesTab/components/rolesDetails/RolesDetails.tsx","screens/security/components/rolesTab/components/rolesList/RolesList.tsx","api/rules/RulesService.ts","api/rules/models/RuleDto.ts","screens/security/components/rulesTab/components/rulesDetails/RulesDetails.tsx","screens/security/components/rulesTab/RulesTab.tsx","screens/security/components/usersTab/components/usersFilters/UsersFiltersScreen.tsx","screens/security/components/usersTab/components/usersList/UsersList.tsx","screens/security/SecurityScreen.tsx","screens/companies/components/CompanyFiltersScreen.tsx","screens/companies/CompaniesScreen.tsx","api/import-data/ImportDataService.ts","screens/import-data/ImportDataScreen.tsx","api/vehicleMonthlyCosts/VehicleMonthlyCostsService.ts","screens/god-mode/calculate-monthly-costs/CalculateMonthlyCostsScreen.tsx","screens/company/components/PlanFormItem.tsx","screens/company/CompanyScreen.tsx","assets/svg/ticket_white.svg","assets/svg/cone.svg","assets/svg/spin.svg","screens/driver/components/counterBoxDriver/CounterBoxDriver.tsx","screens/drivers/components/DriversFilters.tsx","screens/drivers/DriversScreen.tsx","screens/driver/components/driverChargeTab/DriverChargeTab.tsx","screens/driver/components/driverAccidentTab/DriverAccidentTab.tsx","screens/driver/DriverScreen.tsx","assets/svg/desktop_i_calendar.svg","screens/verification/VerificationScreen.tsx","assets/svg/eye-solid.svg","screens/alerts/AlertsScreen.tsx","screens/errors/ForbiddenScreen.tsx","assets/svg/maintenance.svg","screens/maintenances/MaintenancesScreen.tsx","screens/vehicles/components/VehicleFiltersScreen.tsx","screens/vehicles/components/vehicleCard/VehicleCard.tsx","screens/vehicles/VehiclesScreen.tsx","api/vehicleReservations/VehicleReservationsService.ts","common/components/dateWithHour/DateWithHourController.tsx","screens/reservations/components/form/ReservationFormScreen.tsx","screens/reservations/components/filters/ReservationFilters.tsx","screens/reservations/ReservationScreen.tsx","screens/dashboard/DashboardScreen.tsx","api/import-charges/ImportChargeService.ts","api/expenseTemplates/ExpenseTemplatesService.ts","screens/import-charges/components/form/ImportChargeFormScreen.tsx","screens/import-charges/ImportChargeScreen.tsx","screens/import-charges/components/filters/ImportChargeFilters.tsx","screens/import-charges/ImportChargesScreen.tsx","screens/vehicles-mileage/components/VehiclesMileageFiltersScreen.tsx","assets/svg/gauge-danger.svg","screens/vehicles-mileage/VehiclesMileageScreen.tsx","common/components/maps/DrawTools.tsx","api/hotSpots/HotSpotsService.ts","screens/vehicles-gps/components/hotSpotModal/HotSpotModal.tsx","screens/vehicles-gps/components/filters/VehicleGpsFiltersScreen.tsx","common/components/maps/ZoomLevelControl.tsx","screens/vehicles-gps/VehiclesGpsScreen.tsx","api/alarms/AlarmsService.ts","screens/alarms/components/alarmsList/AlarmsListScreen.tsx","common/components/timePicker/TimePickerController.tsx","screens/alarms/components/alarmTab/AlarmTab.tsx","screens/alarms/components/vehiclesTab/VehiclesTab.tsx","screens/alarms/components/notificationsTab/NotificationsTab.tsx","screens/alarms/AlarmScreen.tsx","Router.tsx","Setup.tsx","common/services/Tracking.ts","App.tsx","reportWebVitals.ts","common/extensions/numberExtension.ts","common/extensions/stringExtension.ts","index.tsx","screens/vehicle/components/carVerificationTab/components/carVerification/CarVerification.module.scss","common/components/horizontalMediaSelector/HorizontalMediaSelector.module.scss","screens/vehicle/components/carMonthlyChargesTab/CarMonthlyChargesTab.module.scss","screens/settings/components/vehicleSegmentsTab/components/vehicleSegmentsDetails/VehicleSegmentsDetails.module.scss","screens/settings/components/vehicleBrandsTab/components/vehicleBrandsDetails/VehicleBrandsDetails.module.scss","screens/security/components/rolesTab/components/rolesDetails/RolesDetails.module.scss","screens/alarms/components/notificationsTab/NotificationsTab.module.scss","common/components/dateWithHour/DateWithHour.module.scss","common/components/checkBox/CheckBox.module.scss","common/components/tabs/Tabs.module.scss","common/components/pagination/Pagination.module.scss","screens/vehicle/components/carForm/technicalInformationFormItem/TechnicalInformationFormItem.module.scss","screens/verification/components/list-filters/VerificationFiltersScreen.module.scss","screens/vehicle/components/carVerificationTab/components/carVerification/annotationsForm/AnnotationsForm.module.scss","screens/settings/components/notificationsTab/components/notificationsDetails/NotificationsDetails.module.scss","screens/settings/components/damageTypesTab/components/damageTypesDetails/DamageTypesDetails.module.scss","screens/reservations/components/filters/ReservationFilters.module.scss","screens/import-charges/components/form/ImportChargeFormScreen.module.scss","screens/vehicle/components/carContractTab/components/useContractScreen/UseContractScreen.module.scss","screens/alarms/components/vehiclesTab/VehiclesTab.module.scss","common/components/dropdown/Dropdown.module.scss","common/components/alertsCounter/AlertsCounter.module.scss","screens/vehicle/components/carForm/vehicleFuelFormItem/VehicleFuelFormItem.module.scss","screens/dashboard/filters/FiltersView.module.scss","screens/alerts/components/alertsFilters/AlertsFilters.module.scss","screens/vehicle/components/carAlertsTab/CarAlertsTab.module.scss","screens/settings/components/localsTab/components/localsList/LocalsList.module.scss","screens/security/components/usersTab/components/usersList/UsersList.module.scss","screens/import-data/ImportDataScreen.module.scss","screens/vehicle/VehicleScreen.module.scss","common/components/popover/Popover.module.scss","common/components/questionYesNo/QuestionYesNo.module.scss","common/components/box/Box.module.scss","common/components/badge/Badge.module.scss","common/components/rangeInputPicker/RangeInputPicker.module.scss","common/components/filterBadge/FilterBadge.module.scss","screens/vehicles-management/components/ReportColumnFilterModal.module.scss","common/components/qrCode/QRCode.module.scss","common/components/inputSearch/InputSearch.module.scss","screens/vehicle/components/carMaintenanceTab/components/MaintenanceList/ListMaintenancesScreen.module.scss","screens/vehicle/components/carVerificationTab/components/carVerification/verificationExistModal/VerificationExistModal.module.scss","common/components/sortingDropdown/SortingDropdown.module.scss","screens/settings/components/vehicleModelTab/components/vehicleModelList/VehicleModelList.module.scss","common/components/languagesTabs/LanguagesTab.module.scss","common/components/contentManagement/ContentManagement.module.scss","screens/companies/components/CompanyFiltersScreen.module.scss","screens/verification/VerificationScreen.module.scss","screens/alerts/AlertsScreen.module.scss","screens/maintenances/MaintenancesScreen.module.scss","screens/vehicles-gps/components/hotSpotModal/HotSpotModal.module.scss","common/components/listingTable/ListingTable.module.scss","common/components/iconWithText/IconWithText.module.scss","common/components/dateTimePickerRange/DateTimePickerRange.module.scss","common/components/timeLine/TimeLine.module.scss","screens/verification/components/request-verification/RequestVerificationScreen.module.scss","common/components/modalImageEditor/ModalImageEditor.module.scss","screens/vehicle/components/carChargeTab/components/ChargeScreen.module.scss","common/components/colorPicker/ColorPicker.module.scss","screens/drivers/components/DriversFilters.module.scss","screens/import-charges/ImportChargesScreen.module.scss","screens/import-charges/components/filters/ImportChargeFilters.module.scss","screens/vehicle/components/carGpsTab/CarGpsTab.module.scss","screens/vehicle/components/carMaintenanceTab/components/MaintenanceScreen.module.scss","screens/vehicles-mileage/VehiclesMileageScreen.module.scss","common/components/dateTimePicker/DateTimePicker.module.scss","common/layouts/authenticatedLayout/AuthenticatedLayout.module.scss","common/components/imageEditor/ImageEditor.module.scss","common/components/screenHeader/ScreenHeader.module.scss","screens/errors/NotFoundScreen.module.scss","screens/vehicle/components/carContractTab/components/listContractsScreen/ListContractsScreen.module.scss","common/components/inputInfoWarning/InputInfoWarning.module.scss","screens/dashboard/filters/FiltersButton.module.scss","screens/dashboard/consumesChart/ConsumesChartBox.module.scss","screens/dashboard/expensesChart/ExpensesChart.module.scss","screens/dashboard/monthlyCostChart/MonthlyCostChartBox.module.scss","screens/dashboard/monthlyRouteChart/MonthlyRouteChartBox.module.scss","common/components/inputGroupDate/InputGroupDate.module.scss","common/components/helperModal/HelperModal.module.scss","screens/settings/components/vehicleModelTab/components/vehicleModelsFilters/VehicleModelsFiltersScreen.module.scss","screens/settings/components/suppliersTab/components/suppliersFilters/SuppliersFiltersScreen.module.scss","common/components/summernoteController/SummernoteController.module.scss","screens/security/components/usersTab/components/usersFilters/UsersFiltersScreen.module.scss","screens/companies/CompaniesScreen.module.scss","screens/driver/DriverScreen.module.scss","screens/errors/ForbiddenScreen.module.scss","screens/settings/components/communicationsTab/components/communicationsDetails/CommunicationsDetails.module.scss","screens/security/components/rulesTab/components/rulesDetails/RulesDetails.module.scss","screens/vehicle/components/carForm/CarForm.module.scss","screens/account/components/PlansScreen.module.scss","screens/vehicle/components/carVerificationTab/components/carVerification/annotationsFormItem/AnnotationsFormItem.module.scss","common/components/formItem/FormItem.module.scss","common/components/inputError/InputError.module.scss","screens/vehicles-gps/VehiclesGpsScreen.module.scss","screens/dashboard/consumesChart/ConsumesChart.module.scss","screens/charges/ListChargesScreen.module.scss","screens/alerts/components/alertsFiltersHeader/AlertsFiltersHeader.module.scss","screens/vehicle/components/carMonthlyChargesTab/components/CarMonthlyChargesFiltersScreen.module.scss","screens/settings/components/genericTypesTab/components/genericTypesList/GenericTypesList.module.scss","screens/settings/components/notificationsTab/components/notificationsList/NotificationsList.module.scss","screens/security/components/rolesTab/components/rolesList/RolesList.module.scss","screens/driver/components/driverChargeTab/DriverChargeTab.module.scss","screens/driver/components/driverAccidentTab/DriverAccidentTab.module.scss","screens/dashboard/DashboardScreen.module.scss","screens/alarms/components/alarmsList/AlarmsListScreen.module.scss","common/components/timePicker/TimePicker.module.scss","screens/vehicle/components/carAccidentTab/components/AccidentScreen.module.scss","screens/account/AccountScreen.module.scss","screens/new_account/NewAccountScreen.module.scss","screens/vehicles-management/VehiclesManagementScreen.module.scss","common/components/toggleSwitch/ToggleSwitch.module.scss","screens/vehicle/components/carContractTab/components/maintenanceContractsScreen/MaintenanceContractsScreen.module.scss","screens/vehicle/components/carContractTab/components/insuranceContractsScreen/InsuranceContractsScreen.module.scss","screens/vehicle/components/carMaintenanceTab/components/MaintenanceList/MaintenanceListTable/MaintenanceListTable.module.scss","screens/company/CompanyScreen.module.scss","common/components/mediaSelector/MediaSelector.module.scss","common/components/loading/LoadingProvider.module.scss","common/components/inputGroup/InputGroup.module.scss","common/components/screenHeader/ScreenHeaderButton.module.scss","common/components/avatar/Avatar.module.scss","common/components/label/Label.module.scss","screens/drivers/DriversScreen.module.scss","common/components/filterList/FilterList.module.scss","common/components/deletedVehicleCircle/DeletedVehicleCircle.module.scss","common/components/pagination/PaginationTextInfo.module.scss","common/components/pagination/PaginationWithInfo.module.scss","screens/vehicle/components/carContractTab/CarContractTab.module.scss","screens/vehicle/components/carVerificationTab/components/carVerificationList/CarVerificationList.module.scss","screens/vehicle/components/carDashboardTab/CarDashboardTab.module.scss","screens/vehicle/components/carMaintenanceTab/CarMaintenanceTab.module.scss","common/components/modal/Modal.module.scss","screens/vehicle/components/carVerificationTab/components/carVerification/addMaintenanceModal/AddMaintenanceModal.module.scss","screens/settings/components/suppliersTab/components/suppliersDetails/SuppliersDetails.module.scss","common/components/maps/RoutineMachine.module.scss","screens/settings/components/vehicleSegmentsTab/components/vehicleSegmentsList/VehicleSegmentsList.module.scss","screens/settings/components/vehicleSegmentsTab/VehicleSegmentsTab.module.scss","common/components/formController/FormController.module.scss","screens/settings/components/vehicleModelTab/VehicleModelTab.module.scss","screens/settings/components/vehicleBrandsTab/components/vehicleBrandsList/VehicleBrandsList.module.scss","screens/settings/components/vehicleBrandsTab/VehicleBrandsTab.module.scss","screens/settings/components/suppliersTab/SuppliersTab.module.scss","screens/vehicles/components/vehicleCard/VehicleCard.module.scss","screens/settings/components/genericTypesTab/GenericTypesTab.module.scss","screens/settings/components/damageTypesTab/components/damageTypesList/DamageTypesList.module.scss","screens/settings/components/damageTypesTab/DamageTypesTab.module.scss","screens/settings/components/localsTab/LocalsTab.module.scss","screens/alarms/components/alarmTab/AlarmTab.module.scss","screens/driver/components/counterBoxDriver/CounterBoxDriver.module.scss","screens/alarms/AlarmScreen.module.scss","screens/settings/components/localsTab/components/localsDetails/LocalsDetails.module.scss","screens/reservations/components/form/ReservationFormScreen.module.scss","screens/import-charges/ImportChargeScreen.module.scss","common/layouts/sidebar/Sidebar.module.scss","screens/charges/components/ChargeFiltersScreen.module.scss","screens/reservations/ReservationScreen.module.scss","common/components/welcomeModal/WelcomeModal.module.scss"],"names":["module","exports","constructor","events","addListener","eventName","cb","this","push","index","length","remove","splice","emit","values","cbs","forEach","LoadingSpinner","_jsx","SpinnerCircular","speed","secondaryColor","color","LoadingProvider","PureComponent","props","super","state","showLoading","isComponentMounted","Events","loading","setState","componentDidMount","componentWillUnmount","render","className","styles","container","children","numberFormatter","value","options","valueS","toFixed","currency","decimal","split","concat","replace","newGuid","uuidv4","objectArraybyStringPath","o","s","a","i","n","k","getMonthsInRange","startDate","endDate","dStartDate","dayjs","dEndDate","result","isBefore","isSame","toDate","add","getMonthsInDates","dates","Math","min","map","x","getTime","max","getYearsInRange","getMonthsInYear","date","Array","fill","_","Date","getFullYear","sortAlphabetically","arr","desc","field","arguments","undefined","sort","b","removeAccents","toLowerCase","sortStringsAlphabetically","sortAlphabeticallyByKey","key","aValue","bValue","makeid","characters","charactersLength","charAt","floor","random","isStringNullOrEmpty","str","trim","formatDatePartValue","generateDate","year","month","day","hour","minutes","seconds","monthAux","dayAux","hourAux","minutesAux","secondsAux","aux","flatten","list","reduce","isArray","formatCurrency","symbol","numbro","languageData","delimiters","thousands","thousandsSize","thousandSeparated","mantissa","currencySymbol","currencyPosition","spaceSeparatedCurrency","capitalize","toUpperCase","slice","getDistanceFromLatLonInKm","lat1","lon1","lat2","lon2","dLat","deg2rad","dLon","sin","cos","atan2","sqrt","deg","PI","DEFAULT_LANGUAGE","DEFAULTNS","SERVER_BASE_URL","process","STORAGE_KEY","STORAGE","LOGGER_MESSAGE_TYPE","LOGGER_LOG_TYPE","LOGGER_PRINT_LOGS","LOGGER_PRINT_LOGS_LEVEL","INFO","LOGGER_SEND_LOGS_LEVEL","ERROR","LOGGER_KEYS","_process$env$REACT_AP","LOGGER_URL","_process$env$REACT_AP2","DATE_FORMAT_DEFAUT","DATEPICKER_FORMAT_DEFAULT","DATE_TIME_FORMAT_DEFAUT","DATE_FORMAT_MONTH_YEAR","DATE_TIME_FORMAT_DEFAULT","ROLES","DEFAULT_PAGINATION_ITEMS_PER_PAGE","MIMETYPES_IMAGE","isTablet","width","normalize","blobToBase64","blobFile","Promise","resolve","reader","FileReader","onloadend","readAsDataURL","blobToText","readAsText","DEFAULT_INPUT_RULES","minLength","maxLength","DEFAULT_INPUT_RULES_WITH_REQUIRED","required","validate","Utils","DEFAULT_EMAIL_RULES","pattern","message","DEFAULT_EMAIL_RULES_WITH_REQUIRED","FUELS","ApplicationName","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","IdentityTwoFactorAuthenticationPath","Reset","DASHBOARD_COLORS","expenses","ASSURANCE","CONTRACTS","MAINTENANCES","COSTS","FINES","FUEL","ENERGY","CLEANING","ACCESSORIES","LOGO","TRANSPORT","MISCELLANEOUS","consumes","AVERAGE","monthlyCost","FIXED_COST","VARIABLE_COST","fuels","GASOLINE","GASEOUS_FUEL","ELECTRIC","DIESEL","monthlyRoute","KM","TIME","TOTAL","BAR","BLAMING_COLORS","USE_CONTRACT_TYPES","SEGMENT_FEATURES","encrypt","AES","toString","decrypt","enc","Utf8","set","encrypted","localStorage","setItem","setObject","JSON","stringify","get","getItem","getObject","obj","decrypted","parse","removeItem","listLanguages","languageDetector","type","async","detect","callback","language","Storage","browserLanguage","window","navigator","find","includes","init","cacheUserLanguage","config","fallbackLng","debug","Boolean","initImmediate","load","ns","defaultNS","interpolation","escapeValue","react","wait","useSuspense","resources","pt","fr","en","i18n","use","initReactI18next","ScreenHeaderButton","_ref","icon","classNameIcon","id","onClick","_jsxs","button","src","SET_AUTHENTICATION","SET_PROFILE","UPDATE_REFRESH_TOKEN","SET_COMPANY_INFO_FILLED","authenticateUser","profile","token","languageCode","changeLanguage","dispatch","setAuthentication","logout","setCompanyInfoFilled","setProfile","updateRefreshToken","initialState","isAuthenticated","refreshToken","isCompanyInfoFilled","SET_TOTALS","totals","totalNotRead","totalRead","totalNotReadOwn","totalTreated","totalNonTreated","totalInterventionUrgent","totalInformation","totalIntervention","reducers","authentication","action","companyInfoFilled","alerts","store","createStore","combineReducers","composeWithDevTools","applyMiddleware","thunk","systemName","systemVersion","appVersion","url","userId","setUserId","error","logType","extraData","allowSend","log","info","messageType","data","utc","format","logMessage","console","Http","http","axios","create","responseType","getHeaders","timezone","moment","guess","tokenType","initInterceptors","interceptors","request","baseURL","headers","response","status","reject","setLanguage","post","catch","onError","files","formData","FormData","file","append","containerName","put","params","qs","Logger","REQUEST","additionalData","stackTrace","applicationKey","level","user","userName","getList","criteria","getById","getLoggedUser","catalog","model","mediaFile","postWithFile","update","putWithFile","updateAccount","getRoles","getAllForCompany","hasPolicies","userPolicies","policies","p","up","filter","isPlatformAdmin","userRoles","isAdmin","checkAvailability","updateWelcomeModal","candAddUsers","WelcomeModal","_userProfile$id","t","useTranslation","paginationRef","useRef","useDispatch","isOpen","setIsOpen","useState","checkBox","setCheckBox","userProfile","useSelector","cachedFilters","useEffect","hasSeenWelcomeModal","updateUserProfile","_userProfile$id2","_userProfile$id3","UsersService","validateItem","useCallback","item","sidebarItems","useMemo","image","ImgInicio","title","description","ImgDrivers","ImgVehicles","ImgContractsChargesMaintenanceTrips","ImgDashboards","ImgClientSupport","_Fragment","overlay","modalContainer","CloseButton","closeButton","Row","Col","xs","MainLogo","logo","Swiper","loop","pagination","el","clickable","modules","Pagination","Navigation","initialSlide","resistanceRatio","navigation","swiper","SwiperSlide","slider","subtitle","ref","checkBoxContainer","onChange","e","target","checked","checkmark","checkBoxText","AuthorizeRoute","link","document","createElement","href","path","returnUrl","protocol","host","pathname","search","hash","redirectUrl","encodeURIComponent","Route","Redirect","to","AuthenticationResultStatus","authService","userManager","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","createArguments","useReplaceToNavigate","success","redirect","getUser","_this$_user","_this$userManager","ensureUserManagerInitialized","_this$userManager2","access_token","_this$userManager3","signinRedirect","redirectError","_this$userManager4","signinCallback","updateState","_this$userManager5","signoutRedirect","redirectSignOutError","_this$userManager6","signoutCallback","fetch","ok","Error","settings","json","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","addUserSignedOut","_this$userManager7","removeUser","login","generateResetPasswordCode","resetPassword","verifyToken","sleep","ms","r","setTimeout","IdentityLoginScreen","loginMessage","setLoginMessage","getReturnUrl","processLoginCallback","URLSearchParams","location","redirectToProfile","redirectToRegister","signIn","navigateToReturnUrl","completeSignIn","token_type","expires","realName","email","roles","useValueWithVat","issues","AccountService","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","IdentityLogoutScreen","logoutInfo","setLogoutInfo","authenticated","processLogoutCallback","populateAuthenticationState","signOut","completeSignOut","_extends","Object","assign","bind","source","prototype","hasOwnProperty","call","apply","d","transform","SvgChevronDown","svgRef","titleId","xmlns","height","viewBox","ForwardRef","Popover","onClickOutside","content","contentContainerClassName","positions","align","containerParent","customTop","containerStyle","reposition","overflowHidden","isPopoverOpen","setIsPopoverOpen","v","TinyPopover","zIndex","overflowY","overlayContainer","onClose","DropdownItem","text","style","textDecoration","popoverItem","Link","sizes","x1","x2","x3","x4","Avatar","size","fw","backgroundImage","IconNoPhoto","marginRight","AlertsCounter","totalAlerts","subContainer","AlertIcon","iconSmall","counter","counterSmall","Sidebar","items","history","useHistory","userRefreshToken","isActive","match","onLogoutClick","getProfile","buildRole","role","innerContainer","logoContainer","NavLink","Logo","itemsContainer","strict","activeClassName","itemActive","exact","itemText","badgeValue","floatingBadge","bottom","popoverContainer","PopoverItem","profileItem","mediaUrl","profileAvatar","profileInfo","profileName","ChevronDownIcon","profileChevron","profileRole","copyright","getAlerts","getTotals","page","itemsPerPage","createAlert","read","alertId","updateTotals","AlertsService","setTotals","ALERTS","FormItem","flexProperties","formItem","Label","label","Input","React","forwardRef","preset","presetClassName","default","textLength","setTextLength","currentTarget","onBlur","event","input","disabled","memo","InputError","isWarning","messageWarning","renderMessage","Button","onlyIcon","isDisabled","isLoading","bw","primary","sizeClassName","substr","sizeNormal","preventDefault","stopPropagation","buttonIcon","buttonLoadingOverlay","spinner","show","hide","QuestionYesNo","isVisible","onYes","onNo","isInformation","Modal","top","left","right","backgroundClip","backgroundColor","border","borderRadius","boxShadow","outline","display","justifyContent","alignItems","flex","titleContainer","textTitle","messageContainer","textMessage","buttons_container","ImageEditor","_image$urlBase","canEdit","isDetails","saveFile","onSave","img","File","blob","name","urlBase64","toRemove","ReactPainter","_ref2","triggerSave","canvas","setColor","setLineWidth","editorContent","FaRegSave","editorSave","imagePreview","SvgAssetDefaultImage","MediaSelector","onAddMedias","onRemoveMedia","onUpdateMedia","isMulti","initialMedias","vehicleIcon","isProfilePic","isMobile","innerWidth","medias","setMedias","selectedMedia","setSelectedMedia","showRemoveModal","setShowRemoveModal","importFile","inputMedias","getElementById","click","renderAddMedia","addMediaCar","CarIcon","addMediaUser","addMedia","FaCamera","colors","alto","media","getData","scrollable","scrollableWithLabel","mediasList","imagePreviewMini","margin","mediasListCarWithLabel","mediasListWithLabel","cursor","contentImage","defaultImg","NoImage","imagePreviewContainer","profilePicture","TrashIcon","removeMedia","editorContainer","f","mediaArr","hidden","multiple","accept","m","fileUrl","onCancelRemove","onRemove","filteredMedias","_selectedMedia$id","TrackingProvider","Separator","Select","minWidth","LibSelect","noOptionsMessage","menuPortalTarget","body","control","base","whisper","white","removeInputBorderRadius","isSimple","isFocused","mercury","borderColor","menuPortal","placeholder","frenchGray","opacity","valueContainer","padding","option","isSelected","black","primaryDark","lightGrayishBlue","singleValue","lightblack","multiValueLabel","solitude","multiValueRemove","indicatorSeparator","SelectController","form","rules","isClearable","onChangeSelect","Controller","y","String","defaultValue","getValues","CheckBox","round","checkMark","FaCheck","CheckBoxController","Checkbox","ScreenTitle","DocumentTitle","ScreenContainer","styled","div","_templateObject","_taggedTemplateLiteral","ScreenHeader","onClickTitle","buttons","Box","_props$styles","renderOptions","subTitle","bodyClassName","header","headerTitle","headerOptions","getCurrent","attachment","updateCurrent","validateVatNumber","fillInfo","getCompanyPacksInfo","companyId","getPacksInfo","NewAccountScreen","useForm","shouldUnregister","activeTab","setActiveTab","countries","setCountries","register","handleSubmit","errors","watch","clearErrors","addToast","useToasts","keys","Loading","coutriesData","CountriesService","CompaniesService","reset","appearance","steps","step","active_step","infoMessage","onSubmit","_error$response","xl","md","lg","taxNumber","phone","website","addressLine","zipCode","city","bold","filterOption","candidate","country","mediaId","filteredMedia","driverUserName","driverEmail","AuthenticatedLayout","loggedUser","hasAlertsPolicy","alertsTotals","trackingProvider","sidebarContainer","contentContainer","getAll","GetAllForSelectItem","Tabs","activeTabId","emptyTabMessage","listItem","listItemActive","PackTypesEnum","DateFormat","Moment","locale","Badge","textColor","outlineColor","isSmallRound","badge","sizeRoundSmall","ValidMonthsTypeColorEnum","PlansScreen","_companyMedia$url","_companyPacks$packs","companyName","companyMedia","companyPacks","setCompanyPacks","vehiclesCreated","driversCreated","adminsCreated","packs","limit","setLimit","packsInfo","all","active","groups","groupByPacks","group","from","validDays","validMonths","validYears","sum","keyGetter","Map","collection","badgeText","plan","mainBox","headerBoxWarning","renderIssues","companyRow","companyLogoCol","companyLogo","packsCol","box","boxExpired","PlanIcon","addIcon","planContainer","dateStart","data-tip","ReactTooltip","textContainer","FREE","validMonthsMessage","VALID","WARNING","DANGER","expire","containerCards","resumeCol","resumeBox","resumeTitle","colTitle","labelTitle","resumeRow","alignRight","every","alignCenter","open","AccountScreen","tabid","useParams","setUser","company","setCompany","username","setUsername","formUser","formCompany","setIsDetails","setMediaFile","setRemoveMedia","languages","setLanguages","tabId","setTabId","hasCompaniesWritePolicy","vatDisabled","setVatIsDisabled","changePassword","setChangePassword","onCancel","langs","LanguagesService","_formUser$watch","onSubmitUser","newPassword","confirmPassword","emailData","table","column","toLocaleUpperCase","itemEdit","languageId","phoneNumber","address","zipcode","lang","setValue","onSubmitCompany","removeAttachment","logoId","trackingProviderUsername","trackingProviderPassword","onAddAvatar","onRemoveAvatar","tabs","accountTab","_user$phoneNumber","_user$address","_user$zipcode","avatarContainer","avatarChooser","usernameCol","_x$fullLabel","fullLabel","autoComplete","buttonContainer","config2FA","companyTab","_company$medias","packsTab","_loggedUser$companyId","_loggedUser$issues","tId","NotFoundScreen","MoneyFormat","_props$decimalScale","suffix","tooltip","NumberFormat","displayType","thousandSeparator","decimalSeparator","decimalScale","fixedDecimalScale","HReafWrap","SUBROWS_COLUMN_WIDTH","ListingTable","columns","subColumns","rows","selectedRow","allowHover","striped","headerClassName","initialSearch","showErrors","onRowClick","onHref","onSubRowClick","rowStyle","subRowStyle","hideHeaderWhenNoData","isExpanded","onLoadSubRows","colorRow","colorSubRow","hasSubRows","onSubRowsLoadMore","canSubRowsLoadMore","labelSubRowWithoutResults","allowSubRowHover","getCellWidthStyle","col","getSubCellWidthStyle","getColumnCellStyle","textAlign","columnCellAlignment","getRowCellStyle","row","rowIndex","colIndex","cellAlignment","cellStyle","getSubRowCellStyle","getRowCellValue","renderCell","cellFormat","cellFormatUnitByField","getSubRowCellValue","parentRow","parentRowIndex","isSearchActive","setIsSearchActive","renderHasFilterIcon","onSearch","FaSort","headerInfoImage","renderRowArrow","Icon","onlyImageColumn","bodyColumnOnlyImage","bodyColumn","gray","renderRow","background","rowHover","selected","FaAngleUp","FaAngleDown","_col$hideOn","_col$hideOn2","_col$hideOn3","_col$hideOn4","_col$hideOn5","preventClick","hideOn","xxl","sm","mobile","renderSubRow","_col$hideOn6","_col$hideOn7","_col$hideOn8","_col$hideOn9","_col$hideOn10","onSubClick","bodySubColumn","renderSubRowLoadMore","colSpan","loadMoreRow","renderSubRowWithoutResults","subRowWithoutResults","_col$hideOn11","_col$hideOn12","_col$hideOn13","_col$hideOn14","_col$hideOn15","columnHeaderOnlyImage","columnHeader","clicakble","columnCellClassName","_col$searchField3","_col$searchField4","_col$searchField","_col$searchField2","searchField","colField","isOrderAsc","headerInfo","headerInfoRight","FaSortUp","FaSortDown","subrows","subRowsLoadMore","Fragment","subrow","subrowIndex","noItemsText","getExpensesTotalsReport","getWithConfig","getExpensesDetailsReport","getVehiclesDetailsReport","isToExcel","getVehiclesMileageReport","vehicleId","catalogWithDeleted","catalogByCharges","catalogByMaintenances","photo","activate","getFuelList","getColorsList","getConsumptionCounters","getCountersList","getMileageCountersList","getMonthlyCosts","getByMaintenanceContractId","getCarCurrentDriver","candAddVehicles","companyHaveVehicles","getVehicleSegmentFeatures","getFeatures","registerLocale","enGB","DateTimePicker","DatePicker","showYearDropdown","wrapperClassName","fullWidth","InputGroup","noBorder","nameText","onValueChange","hideMessageLength","containerClassName","clickInText","onClickInText","removeIconOrTextBorderRadius","onClear","noFixedDecimalCase","inputGroup","inputWithButton","noBorderRadiusLeft","getInputRef","_e$floatValue","floatValue","inputMoney","isAllowed","inputObj","FaTimes","clearButton","inputGroupAppend","cursorPointer","inputGroupText","noBorderRadiusRight","NUMBERS_MAX_LENGTH","RangeInputPicker","isDatePicker","showMonthYearPicker","defaultStartValue","defaultEndValue","groupSymbol","dateFormat","startValue","setStartValue","endValue","setEndValue","tool","setTool","break","FaInfoCircle","data-for","marginLeft","place","light","placeholderText","customInput","FaCalendarAlt","maxDate","Number","newDate","getMonth","minDate","getUseContractTypes","getUseContractsByVehicle","notAchat","ToggleSwitch","changeToggle","toggleSwitch","enabled","switch","VehiclesManagementFiltersScreen","filters","hasCountersPolicy","onFilter","guidEmpty","shouldFocusError","defaultValues","segmentsOptions","setSegments","useContractTypeOptions","setUseContractTypeOptions","selectUseContractActive","setSelectUseContractActive","selectUseContractTypeId","setSelectUseContractTypeId","segmentsOptionsDB","VehicleSegmentsService","useContractTypes","UseContractsService","___useContractTypesOrdered","VEHICLES","onInputChange","getVal","onSelectUseContractActive","formContent","onKeyUp","_segmentsOptions$find","_segmentsOptions$find2","onSelectChange","_data$value","_data$label","_ref3","_useContractTypeOptio","_useContractTypeOptio2","useContractStatus","labelContainer","notSelected","vat","range","buttonsFooter","clearFilters","registrationNumber","registrationDate","segmentId","costAverage","costAccumulated","useContractTypeId","useContractActive","useContractEndsAfter","useContractEndsBefore","inactives","IconWithText","valueDate","valueHour","isNumeric","isDate","iconLarge","danger","FilterBadge","onRemoveFilter","showRemoveFilter","FaTimesCircle","removeButton","FilterList","filtersList","_filter$value","CounterBox","subLabel","isMoney","isKm","counters","col4","verticalAlign","inLine","boxCounterContainer","boxCounterContent","labelCounterContainer","flexDirection","spanLabel","spanMoreWidth","spanSubLabel","spanCounter","countersContainer","counterBadge","ContractStatusColorEnum","Dropdown","DropdownWrapper","closeOnOutsideClick","changeStatus","isShow","dropdownContainer","DeletedVehicleCircle","deletedCircle","data-id","effect","getItems","ReportColumnFilterModal","getReport","setCriteria","orderBy","orderColumn","setItems","refresh","setRefresh","closeModal","ExportDataItemsService","tableColumns","toggleSwitchStyle","PaginationTextInfo","pageItems","totalItems","itemName","paginationInfo","currentPage","totalPages","ceil","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","marginPagesDisplayed","pageRangeDisplayed","onPageChange","pageClassName","nextClassName","direction","previousClassName","disabledClassName","directionDisabled","forcePage","PaginationWithInfo","defaultcostsEndDate","endOf","VehiclesManagementScreen","_userProfile$companyI","costsEndDate","hasKmFeature","vehicles","setVehicles","setCurrentPage","setTotalItems","setFilters","filtersTotal","setFiltersTotal","setCounters","imageCacheKey","hasGpsReadPolicy","hasExportPolicy","pageLoaded","setPageLoaded","showReportColumnFilterModal","setShowReportColumnFilterModal","reportType","setReportType","countersDB","VehiclesService","vehiclesDB","onTableFilter","isFilterAsc","showField","feature","segmentFeatures","_segmentFeatures$find","findIndex","imageDescCell","photoUrl","current","_row$id","_row$vehicleBrandName","_row$vehicleModelName","descCell","columnPlate","columnBrand","vehicleBrandName","vehicleModelName","cellContainer","firstRow","useContractTypeName","useContractExpiredEndDate","EXPIRED","smallCustomization","useContractMonthsContract","useContractPastMonths","_row$segmentFeatures","GaugeIcon","currentKilometers","BiTargetLock","averageTargetMonth","currentKilometersTracking","secondRow","EuroIcon","monthlyCostTotal","MediaIcon2","monthlyCostAverage","CoinsBlackIcon","_row$totalFines","_row$totalCleaning","_row$totalAccidents","totalFines","TicketIcon","totalCleaning","FloorBrushIcon","totalAccidents","ConeBlackIcon","saveFiltersOnCache","ctrlKey","navigateTo","loadFilters","onChangeFilters","isOnLoad","updateTotalFilters","minCost","maxCost","minCostTotal","maxCostTotal","driverId","costsStartDate","total","renderBox","getExpensesReport","report","saveAs","FaFileExport","exportButton","Colors","filtersPopoverContainer","FiltersIcon","counterList","counterNumber","segmentName","driverName","renderCounterBoxes","_counters$numberVehic","_counters$costTotalMo","_counters$costTotalAc","rowCounters","numberVehicles","MediaIcon","costTotalMoyenne","CoinsIcon","costTotalAccumulated","PolicyRoute","component","userIssues","allowed","Component","getFuelSuppliers","getDevicesList","getVehiclesList","vehicleIds","getCoordinates","getRoutes","getRoutesTotals","getPosition","getAggregatePositions","getAggregatePositionsPoints","getWaypoints","start","stop","hydrateGpsData","updateAddress","VehicleCondition","DateTimePickerController","onChangeCtrl","onFocus","focus","InputController","SvgTrashNoColor","FileSelector","onFilesChanged","initialFiles","addButtonSizes","fileButtonSizes","onRemoveFile","filesListClassName","smallButtonAdd","iconButton","setFiles","selectedFile","setSelectedFile","selectedFileIndex","setSelectedFileIndex","fileRef","renderWithouFile","withoutFile","renderAddFile","containerSmallButton","AddIcon","inLineButton","addButton","maxWidth","renderListFile","_createElement","fileButton","openFile","removeIcon","removeFile","renderSingleFile","filesList","renderMultipleFile","_file$url","svg","Blob","FileSaver","newFiles","TechnicalInformationFormItem","_form$errors","onRemoveClick","technicalInformations","containerError","entitled","TechnicalInformationForm","onRemoveTechnicalInformation","useFieldArray","keyName","showRemoveTechnicalInformation","setShowRemoveTechnicalInformation","technicalInformationToRemoveIndex","setTechnicalInformationToRemoveIndex","headerText","headerButton","addTechnicalInformation","attachments","fields","headerButtonText","headerButtonIcon","noInfoText","ti","setRemoveItem","formId","_technicalInformation","QrCode","emptyMessage","qrCodeModalIsOpen","setQrCodeModalIsOpen","qrCode","QRCode","closeButtonModal","CloseIcon","VehicleFuelFormItem","mode","fuelsOptions","setFuelReRender","vehicleFuelsCounter","vehicleFuels","fuelId","_fuelsOptions$find","_fuelsOptions$find2","VehicleFuelForm","showRemoveVehicleFuel","setShowRemoveVehicleFuel","vehicleFuelToRemoveIndex","setVehicleFuelToRemoveIndex","fuelReRender","addVehicleFuel","consommationMoyenneReference","CarForm","_item$photo","setSegmentFeatures","localsOptions","setLocalsOptions","brandsOptions","setBrandsOptions","modelsOptions","setModelsOptions","typesOptions","setTypesOptions","setFuelsOptions","fuelSuppliersOptions","setFuelSuppliersOptions","colorsOptions","setColorsOptions","trackingDevicesOptions","setTrackingDevicesOptions","isLoadingDevicesList","setIsLoadingDevicesList","selectedCondition","setSelectedCondition","conditionIsSelected","setConditionIsSelected","itemToRemove","setItemToRemove","itemToActivate","setItemToActivate","dialogDeleteItemIsOpen","setDialogDeleteItemIsOpen","dialogActivateItemIsOpen","setDialogActivateItemIsOpen","registrationAlreadyExists","setRegistrationAlreadyExists","hasVehiclesWritePolicy","driversOptions","setDriversOptions","technicalInformationsIdsToRemove","setTechnicalInformationsIdsToRemove","conditionsOptions","NEW","USED","trackingDevices","TrackingService","err","CHARGES","brands","models","types","fuelSuppliers","drivers","locals","VehicleBrandsService","VehicleModelsService","SuppliersService","DriversService","LocalsService","_item$driverName","unshift","getSegmentFeatures","condition","features","getBrandByModel","brand","modelId","brandId","getModelByBrand","segments","_segments$find","getSegmentsByBrand","_models$find","mediasToSubmit","_form$vehicleFuels","_form$vehicleFuels$fi","_form$vehicleFuels$le","_form$vehicleFuels2","_form$reservationAvai","vehicleSegmentId","fuelsRepeated","_form$vehicleFuels3","_form$vehicleFuels$fi2","_form$vehicleFuels4","_form$vehicleFuels4$f","z","registrationNumberDate","vehicleBrandId","vehicleModelId","colorId","trackingDeviceId","totalCostCharges","totalCostMaintenances","totalCostContracts","fuelCard","fuelCardSupplierId","fiscalPower","dateCirculation","reservationAvailable","defaultDriverId","vehicleLocals","tempModel","createId","_error$response2","_form$getValues","IconBack","section","sectionTitle","_medias","_brands$find","getBrandsBySegment","warningInput","warningLabel","c","renderConditionItem","labelContent","onSelectCondition","errorLabel","localId","companyTrackingProvider","NONE","buttonsContainer","showRemoveItemDialog","_item","showActivateItemDialog","activateItem","CarDocumentTab","ContractModel","getMaintenanceContractTypes","getInsuranceContractTypes","dropdownItem","ListContractsScreen","_itemToRemove$number","editable","onClickItem","createNewContract","onListDidLoad","listReRender","onDeleteFromList","tourReRender","USE","MAINTENANCE","INSURANCE","setList","hasContractsWritePolicy","validateRemoveConfirmation","isRowUseContract","insuranceIncluded","maintenanceContractIncluded","supplierUrl","supplierName","_maintenanceContractT","_insuranceContractTyp","maintenanceContractTypes","maintenanceContractTypeName","maintenanceContractTypeId","insuranceContractTypes","insuranceContractTypeName","insuranceContractTypeId","colorText","IN_PROGRESS","PLANNED","number","_row$cost","cost","periodicity","_row$costCumule","costCumule","urlDetails","urlEdit","FaEllipsisH","overflow","useContracts","maintenanceContracts","MaintenanceContractsService","insuranceContracts","InsuranceContractsService","labelMaintenances","maintenanceContractsNumbers","labelInsurance","insuranceContractsNumbers","getTooltipToOtherContracts","AlertNoticeTypeEnum","Periodicity","TaxVat","GenericType","CalendarContainer","Portal","DateTimePickerRange","onChangeRange","end","onClickOutsideRange","dateRange","setDateRange","shouldCloseOnSelect","selectsRange","popperContainer","setOpen","caretColor","onChangeRaw","nativeEvent","inputType","select","InputGroupController","controllerOnChange","newValue","DateTimePickerControllerNew","_ref$current","InputInfoWarning","ContractInvoices","invoices","onAddInvoice","onRemoveInvoice","setMode","invoice","setInvoice","isNew","hasSaved","setHasSaved","onSaveInvoice","displayBetween","cancelInvoice","displayCenter","_item$file","_item$file2","timelineItem","circle","dateTime","AiOutlineFilePdf","removeIconDiv","FaTrashAlt","setFile","dateRangeCustom","FileUseContractType","UseContractScreen","_periodicityOptions$f","_vehicle$currentKilom2","_form$watch","itemId","startDateEdit","endDateEdit","vehicle","onBackList","onItemDetails","onSubmitted","useContract","setUseContract","useContractTypePurchase","setUseContractTypePurchase","supplierOptions","setSupplierOptions","selectedStampDutyIncluded","setSelectedStampDutyIncluded","selectedMaintenanceContractIncluded","setSelectedMaintenanceContractIncluded","selectedInsuranceIncluded","setSelectedInsuranceIncluded","contractTypesResult","setContractTypesResult","savedFilesGrayCard","setSavedFilesGrayCard","savedFilesContractOrProofPurchase","setSavedFilesContractOrProofPurchase","alertNoticeOptions","setAlertNoticeOptions","showAlertNotice","setShowAlertNotice","showRemoveAlertNotice","setShowRemoveAlertNotice","alertNoticeToRemoveIndex","setAlertNoticeToRemoveIndex","alertNoticeIdsToRemove","setAlertNoticeIdsToRemove","currentKmsGps","setCurrentKmsGps","invoiceMode","setInvoiceMode","invoicesToRemove","setInvoicesToRemove","periodicityOptions","taxVatOptions","alertNotices","inputKmsBelowCurrentVehicleKms","setInputKmsBelowCurrentVehicleKms","hasReadGPSPolicy","useContractTypesOrdered","suppliers","typeName","RENTAL","alertNoticesDB","AlertNoticesService","buildAndSetAlertNoticeOptions","alertNoticeType","TIME_PERIODS","_taxVatOptions$find","USE_CONTRACTS","returnDate","taxVat","stampDutyIncluded","setValuesFilesGrayCard","fileType","GRAY_CARD","setValuesFilesContractOrProofPurchase","CONTRACT_OR_PROOF_PURCHASE","compareKms","alertNoticesArr","mappedAlertNotices","KILOMETERS","alertNoticeComparison","onSelectStampDutyIncluded","onSelectMaintenanceContractIncluded","onSelectInsuranceIncluded","arrangeFilesAfterSubmit","prepareFilesToSubmit","_getValues$filter","_getValues","_getValues$filter2","_getValues2","_getValues3","filesGrayCard","filesContractOrProofOfPurchase","invoiceFiles","fullAttachments","getMessageToDeletion","_useContract$numbersM","_useContract$numbersI","numbersMaintenanceContracts","join","numbersInsuranceContracts","_useContract$numbersM2","_useContract$numbersI2","_position$km","position","km","getGpsKms","selectedUseContractTypeId","selectedUseContractType","selectedPeriodicityValue","selectedPeriodicity","maintenance","insurance","_watch","_vehicle$currentKilom","_vehicle$segmentFeatu","_vehicle$segmentFeatu2","_form$invoices","_contractTypesResult$","_contractTypesResult$2","_form$attachments","_form$attachments2","invoicesToDelete","supplierId","returnPlace","alertNoticesIdsToRemove","sd","getDate","dateLastDayOfMonth","formState","isSubmitted","kmContractual","groupInputsWarranty","groupInputWarranty","warrantyYears","groupInputSeparatorWarranty","marginTopSmallScreens","warrantyKilometers","kmVehicle","kms","groupStampDuty","groupSpinner","spinnerDetails","labelSpinner","groupInputStampDuty","InfoIcon","addAlertNotice","iconAdd","rowAlerts","itemFilter","setRemoveAlertNotice","renderAlertNotice","colRightContent","_getValues4","currentInvoices","_getValues5","helper","removeAlertNotice","_alertNotices$fields$","MaintenanceContractsScreen","maintenanceContract","setMaintenanceContract","useContractOptions","setUseContractOptions","maintenanceContractTypeOptions","setMaintenanceContractTypeOptions","selectPeriodicity","setSelectedPeriodicity","includeContract","setIncludeContract","savedFiles","setSavedFiles","maintenanceContractTypesOrdered","MAINTENANCE_CONTRACTS","includeUseContractId","setValuesFiles","baseAttachments","allAttachments","alignContent","getUseContractAssociate","messageAlert","querySelector","InsuranceContractsScreen","insuranceContract","setInsuranceContract","insuranceContractTypeOptions","setInsuranceContractTypeOptions","insuranceContractTypesOrdered","INSURANCE_CONTRACTS","invoicesToSave","ScreenType","CarContractTab","contractType","contractId","itemType","useContractsLoaded","setUseContractsLoaded","maintenanceContractsLoaded","setMaintenanceContractsLoaded","insuranceContractsLoaded","setInsuranceContractsLoaded","setRender","LIST","goBack","_data$consumes","_data$monthlyCost","cc","DateRangePickerController","nameFrom","nameTo","placeholderFrom","placeholderTo","refFrom","refTo","fieldFrom","useController","fieldTo","rangeContainer","_refFrom$current","selectsStart","_refTo$current","selectsEnd","timePeriodToDates","timePeriod","TimePeriod","CURRENT_MONTH","startOf","PREVIOUS_MONTH","subtract","PREVIOUS_3_MONTHS","FiltersView","canSelectVehicle","timePeriodWatch","useWatch","timePeriods","tp","onTimePeriodChange","OTHER","onClearFilters","dateFrom","dateTo","FiltersButton","getTotal","ChartLegendLabel","textSize","datum","userSelect","VictoryLabel","ChartEmptyLabel","useIsomorphicLayoutEffect","useLayoutEffect","useEventListener","handler","element","savedHandler","targetElement","addEventListener","eventListener","removeEventListener","useElementSize","setRef","setSize","handleSize","offsetWidth","offsetHeight","BarLabel","backgroundPadding","fontSize","backgroundStyle","backgroundComponent","Rect","rx","ry","verticalAnchor","renderInPortal","ConsumesChart","selectedYear","hiddenData","setHiddenData","reRenderKey","setReRenderKey","containerRef","noEnoughInfoText","chartWidth","chartHeight","viewHeight","legendData","labels","fuelName","gray17","itemsData","h","allItems","allDates","self","allValues","average","highestValue","monthsDiff","chartPadding","chartContainer","VictoryChart","standalone","maxDomain","minDomain","VictoryLine","stroke","strokeWidth","strokeDasharray","VictoryAxis","dependentAxis","tickValues","axis","ticks","axisLabel","tickLabelComponent","scale","domainPadding","VictoryGroup","offset","VictoryBar","alignment","cornerRadius","barWidth","labelComponent","eventHandlers","onMouseEnter","mutation","propsData","onMouseLeave","orientation","tickFormat","tickLabels","gray3","VictoryLegend","gutter","itemsPerRow","ConsumesChartBox","selectedYearIndex","setSelectedYearIndex","allYears","yearsOptions","existsMoreThanOneYear","currYear","currYearExistIndex","optionsContainer","onPreviousYear","ArrowDown","onNextYear","centerAlign","LegendLabel","fontWeight","fontFamily","ExpensesChart","viewBoxWidth","viewBoxHeight","categories","colorScale","isSystem","VictoryPie","innerRadius","radius","rowGutter","textAnchor","DashboardMonthlyCostTypeEnum","MonthlyCostChart","fixedCostsTotal","setFixedCostsTotal","variableCostsTotal","setVariableCostsTotal","costsTotal","setCostsTotal","setCosts","fixedValues","variableValues","fixedCost","variableCost","counterRightBorder","counterLabel","counterValue","MonthlyCostChartBox","VehicleMaintenanceStates","NextMaintenances","statePreset","PREDICTED","PERFORM","getStatePreset","onPress","vehiclePhotoUrl","contentData","itemRow","expectedDate","adviseKms","adviseDate","itemVehicleRegistrationNumberText","vehicleRegistrationNumber","dateText","expectedHour","DistanceFormat","_props$displayType","_props$displayType2","showLessThan1Km","MonthlyRouteChart","hasTrackingDeviceId","totalKms","totalMinutes","hours","padStart","formatTime","renderToString","time","MonthlyRouteChartBox","ChartsBoxes","nextMaintenances","isLoadingExpenses","isLoadingConsumes","isLoadingNextMaintenances","isLoadingMonthlyCost","isLoadingMonthlyRoute","showMonthlyRoute","Grid","fluid","chartCol","chartBody","defaultTimePeriod","defaultDateFrom","defaultDateTo","CarDashboardTab","setExpenses","setConsumes","setNextMaintenances","setMonthlyCost","setMonthlyRoutes","isLoadingCounters","setIsLoadingCounters","setIsLoadingExpenses","setIsLoadingConsumes","setIsLoadingNextMaintenances","setIsLoadingMonthlyCost","setIsLoadingMonthlyRoute","dashboardData","DashboardService","getCounters","DASHBOARD","getExpenses","getConsumes","getNextMaintenances","getTimezoneOffset","dateInLocalTime","getMonthlyCost","getMonthlyRoutes","headerContainer","getChartCharges","InputSearch","onChangeValue","onKeyDown","inputContainerClassName","inputRef","inputContainer","keyCode","inputContent","inputImage","SearchIcon","pointer","clearInput","RenderSVG","dangerouslySetInnerHTML","__html","catalogSupplier","catalogCharge","catalogChargeByChargeId","chargeId","catalogChargeBySupplierId","catalogIcons","AvatarWithText","hideAvatar","ChargesStatusColorEnum","TimeLine","VerticalTimeline","animate","layout","_item$date","_item$dateRefund","VerticalTimelineElement","iconStyle","situation","infoSmall","dateRefund","userPhotoUrl","wordBreak","InputResizable","TextareaAutosize","resize","textArea","InputResizableController","contextMenuOptions","setElement","useContextMenu","reference","renderContextMenu","Menu","theme","Item","onContextMenu","SituationType","RequestStatusType","ChargeScreen","isVehicle","isDriver","charge","setCharge","vehicleOptions","setVehicleOptions","typeOptions","setTypeOptions","responsibleOptions","setResponsibleOptions","selectecType","setSelectecType","selectecTypeName","setSelectecTypeName","selectedRefundTreated","setSelectedRefundTreated","selectedRequestRefund","setSelectedRequestRefund","fuelOptions","setFuelOptions","reRender","setReRender","requiredFields","setRequiredFields","displayFields","setDisplayFields","setVehicle","currentKms","setCurrentKms","demandStatusOptions","APPROVED","REFUSED","blockRefundTreated","setBlockRefundTreated","hasChargesWritePolicy","hasWriteRefundStatusPolicy","hasWriteRefundSituationPolicy","hasReadRefundPolicy","refundHistory","setRefundHistory","refreshKey","setRefreshKey","types2","GenericTypesService","responsables","vehicleIdVerified","_result$vehicleId","_result$vehicleId2","_result$vehicleId3","ChargesService","setValues","getVehicle","_type$requiredFieldsL","_type$displayFieldsLi","_values$fuelCard","_type$name","_values$refund","_values$refund2","refundHistories","_x$updatedDate","_x$statusUserName","labelHistory","updatedDate","createdDate","dateRefundTreated","statusUserName","userCreatedHistoryName","observations","refund","paymentDate","getSupplierByType","typeId","requestRefund","requiredFieldsList","displayFieldsList","TREATED","typeUrl","onSelectRefundTreated","typeSituation","changeFuelCard","fuelCardAux","shouldDisplay","_fuelCard","getFuelCard","refundApproved","isRequired","chargeAux","_vehicle","_vehicle$vehicleFuels","_vehicle$vehicleFuels2","_x$fuelName","_chargeAux$fuelName","renderBody","_fuelOptions$find","_fuelOptions$find2","_fuelOptions$find3","_vehicle$currentKilom3","messageRefundApproved","labelRefundApproved","vId","changeVehicle","_typeOptions$find$lab","_typeOptions$find","_data$requiredFieldsL","_data$displayFieldsLi","changeType","responsibleId","checkboxArea","liters","_form$watch2","kilometers","filesHeader","filesContent","renderButtons","showButtonBasedOnPolicy","showEditOrRemoveButton","vehicleActive","renderSideInfo","_errors$refund","_errors$refund2","marginBottom","divider","_ref4","_demandStatusOptions$","_demandStatusOptions$2","statusUserId","_ref5","situationDetails","NOT_TREATED","_form$refund","_form$refund2","fullHeight","messageDeleted","ChargeFiltersScreen","vehiclesOptions","setTypes","suppliersOptions","setSuppliers","responsiblesOptions","setResponsibles","setFuels","referencedAtCharges","_vehiclesOptions$find3","_vehiclesOptions$find4","_vehiclesOptions$find","_vehiclesOptions$find2","_typesOptions$find$la","_typesOptions$find","_type$fullLabel","_type$label","_data$value2","_type","_fuelsOptions$find$la2","_fuelsOptions$find$la","_data$value3","_suppliersOptions$fin3","_suppliersOptions$fin4","_suppliersOptions$fin","_suppliersOptions$fin2","_data$value4","_ref6","_responsiblesOptions$3","_responsiblesOptions$4","_responsiblesOptions$","_responsiblesOptions$2","_data$value5","vehicleName","responsibleName","refundSituation","vehiclesInactive","ListChargesScreen","_chargePage$items","_chargePage$currentPa","_chargePage$items$len","_chargePage$totalItem","_chargePage$items2","_chargePage$currentPa2","_chargePage$items$len2","_chargePage$totalItem2","createNewCharge","criteriaProp","chargePage","setChargePage","setMonth","setUTCHours","setUTCSeconds","vehicleSegmentFeatures","setVehicleSegmentFeatures","hasImportChargesWritePolicy","charges","_vehicleSegmentFeatures","_vehicleSegmentFeatur","renderTableActionCell","renderTypeAndKilometersCell","rowFlex","typeIconSvg","divSVG","typeIsSystem","cols","responsiblePhotoUrl","dateFrais","costColumn","moneyColumn","refundTreatedArea","WAITING_APPROVAL","debounced","useDebouncedCallback","allIn","tabHeader","emptyBorder","importIcon","ImportIcon","_counters$averageCost","_counters$averageCost2","_counters$cumulativeT","averageCostPerMonth","averageCostChargePerCar","cumulativeTotalCost","CarChargeTab","catalogWithDate","MaintenancesFiltersScreen","genericFilter","statesOptions","setStatesOptions","vehiclesOptionsList","responsiblesOptionsList","suppliersOptionsList","states","_filters","_data$label2","_statesOptions$find$l","_statesOptions$find","_data$label3","_data$label4","_data$label5","currentState","currentStateName","executedStartDate","executedEndDate","MaintenanceListTable","hasVehicleMaintenanceWritePolicy","renderKilometersCell","adviseMaintenanceKilometers","adviseMaintenanceDate","maintenanceDate","maintenanceHour","flexColumn","responsible","keepText","hideText","maintenanceContractsId","VehicleMaintenancesService","ListMaintenancesScreen","_criteria","createNewMaintenance","setPage","maintenances","setMaintenances","hasVehicleMaintenancesWritePolicy","segmentFeaturesLoaded","res","_features","_features$findIndex","MaintenanceFiltersScreen","InputGroupDate","datePlaceholder","dateSelected","dateCustomInput","dateName","dateRequired","dateDisabled","onChangeDate","inputText","inputPlaceholder","inputName","inputFormat","inputRequired","inputMaxLength","inputDisabled","leftChild","rightChild","DateWithHour","onTimeChoose","timePlaceholder","timeName","timeDisabled","showTime","setShowTime","maxHeight","Timekeeper","closeOnMinuteSelect","hour24Mode","switchToMinuteOnHourSelect","onDoneClick","FaRegClock","MaintenanceScreen","onSubmitDone","titleHeader","isModal","propVehicleId","routeVehicleId","plannedAlertNotices","showPlannedAlertNotice","setShowPlannedAlertNotice","setMaintenance","alertNoticesInDb","setAlertNoticesInDb","plannedAlertNoticeOptions","setPlannedAlertNoticeOptions","showRemovePlannedAlertNotice","setShowRemovePlannedAlertNotice","plannedAlertNoticeToRemoveIndex","setPlannedAlertNoticeToRemoveIndex","plannedAlertNoticeIdsToRemove","setPlannedAlertNoticeIdsToRemove","contractTypeOptions","setContractTypeOptions","contractNumbersOptions","setContractNumbersOptions","contractTypes","contractTypesOrdered","responsibles","isNaN","vehicleMaintenanceState","buildAndSetPlannedAlertNoticeOptions","resultVehicleId","getContactNumbersByDate","getContractsByVehicle","results","vehicleIdAux","contractNumbers","rebuildAndSetAlertNoticeOptions","maintenanceContractId","canShowMaintenanceQuestionArea","stateIsPerform","canShowAlertNotifications","stateIsPredicted","idsAlertNoticesSelected","an","missingKilometers","anOpt","some","missingDate","_model$attachments","_model$attachments2","typeFO","colXXL","buttonOptions","getVehiclesByContract","formatted24","marginTop","labelQuestion","addPlannedAlertNotice","setRemovePlannedAlertNotice","renderPlannedAlertNotice","notes","removePlannedAlertNotice","_plannedAlertNotices$","CarMaintenanceTab","getTop5verifications","getAnnotationsByVerificationId","updateAnnotations","removeAnnotation","catalogZones","getDefaultKm","findOverlaps","VerificationType","AlertSubjectEnum","AlertSubjectColorEnum","VerificationFiltersScreen","setDrivers","interventionOptions","interventionType","driversList","_driversOptions$find","InterventionTypeEnum","InterventionTypeColorEnum","getInterventionTypeStatusColor","AlertType","AlertTypeColorEnum","RequestVerificationScreen","usersOptions","setUsers","driver","usersList","communicationTypes","REQUEST_VERIFICATION_NEW_ALERT","messageRow","CarVerificationList","genericPage","updateCriteria","carVerificationPage","setCarVerificationPage","hasVerificationsWritePolicy","hasRequestVerificationsWritePolicy","annotations","renderDoubleRows","row1","row2","renderImageCell","renderVehicleCell","TRAVEL","DriveIcon","VerificationsIcon","fontBold","dateModified","driverPhotoUrl","_row$verificationFini","dateBegin","verificationDate","verificationHour","_splittedHoursMinutes","_splittedHoursMinutes2","splittedHoursMinutesStart","setHours","setMinutes","dateEnd","verificationFinishDate","verificationFinishHour","_splittedHoursMinutes3","_splittedHoursMinutes4","splittedHoursMinutesEnd","PlayIcon","CalendarvIcon","HourGlassIcon","defaultGreen","labelSmall","FlagBWIcon","CarburantIcon","autonomy","vehicleImmobilizedTooltip","predictedDateEndImmobilization","numberAnnotationsUrgent","INTERVENTION_URGENT","numberAnnotationsInformative","INFORMATION","numberAnnotationsIntervention","INTERVENTION","immobilized","stopContainer","iconStop","CarVerificationService","count","navigateToItem","InformationForm","_vehicleParam$current2","showTimeFinish","setShowTimeFinish","typeWatch","verificationFinishDateWatch","showKilometersFinish","setShowKilometersFinish","vehicleParam","setVehicleParam","VERIFICATIONS","_vehicleParam$current","_vehicleParam$segment","_vehicleParam$segment2","typesList","vehicleAux","getVehicleGpsCurrentKms","verificationInfos","minute","currFinishHour","currFinishHourSplit","disabledTimeRange","kilometersFinish","_props$style","_props$style2","customStyles","ReactModal","ModalImageEditor","onRequestClose","fileName","tempFile","initialColor","canvasContainer","HorizontalMediaSelector","showImageEdit","setShowImageEdit","renderMedia","itemPreview","onClickMedia","addMediaIcon","onRemoveDone","onCancelEditMedia","HorizontalMediaSelectorController","AnnotationStatusEnum","interventionTypeStatus","statusOption","AnnotationsFormItem","annotationTypes","annotation","onClickAddMaintenance","onTouch","statusWatch","hasAnnotationsWritePolicy","selectedStatus","setSelectedStatus","interventionTypeStatusList","intervention","statusOptionList","renderForm","rowSpace","toggleImmobilized","annotationDate","containerEdit","containerDetails","rowSpaceDescription","rightInfo","statusContainer","rowSpaceForm","rowSpaceSelects","rowDivider","renderStatusItem","DONE","doneStatus","waitingStatus","doneDate","AnnotationsForm","onRemoveAnnotation","showRemoveAnnotation","setShowRemoveAnnotation","annotationToRemoveIndex","setAnnotationToRemoveIndex","addAnnotation","noAnnotationsText","_annotations$fields$a","AddMaintenanceModal","VerificationExistModal","onFinish","responsableId","CarVerification","goToEdit","verificationId","setAnnotationTypes","setResponsables","formReady","setFormReady","mediasIdsToRemove","setMediasIdsToRemove","annotationsIdsToRemove","setAnnotationsIdsToRemove","showAddMaintenanceModal","setShowAddMaintenanceModal","addMaintenanceAnnotationIndex","hasAnyAnnotationDone","setHasAnyAnnotationDone","detailsFormTouched","setDetailsFormTouched","setVehicleId","verification","setVerification","disableButtonSubmit","setDisableButtonSubmit","isVerificationExistModalOpen","setIsVerificationExistModalOpen","verificationOverlap","setVerificationOverlap","criteriaOverlap","excludeItem","excludeGuid","_error$response2$data","_error$response3","_error$response3$data","_error$response4","_error$response5","_error$response6","_error$response7","_error$response8","responsableList","annotationTypeList","UserService","DiagnosticTypesService","maintenancesList","anyAnnotationsDone","vehicleList","rootContainer","pageNameContainer","pageNameContent","pageNameContentImage","GreyArrow","pageNameContentText","_annotation$status","annotationId","annotationStatus","WAITING","maintenanceIds","_tempModel$vehicleId","_tempModel$driverId","canSave","_error$response9","_error$response10","_error$response10$dat","_error$response11","_error$response11$dat","annotationIndex","formVehicleId","maintenanceList","refreshMaintenances","onCancelMaintenance","goToVerification","CarVerificationTab","AccidentScreen","accident","setAccident","hasAccidentsWritePolicy","AccidentsService","ACCIDENTS","getInsuranceContractsByDate","getDrivers","crit","insuranceContractId","guilty","insuranceAssumedCost","renderBlaming","valueController","toSetValue","renderAssumedCost","contentIsVehicle","colLeftContent","AccidentFiltersScreen","_driversOptions$find$","ListAccidentsScreen","createNewAccident","accidents","setAccidents","_accidents","dateResponsibleColumn","statusColumn","insuranceContractSupplier","insuranceContractNumber","CarAccidentTab","useGeoLocator","lat","long","useQuery","queryKey","queryFn","then","retryDelay","retry","addressFormat","latitude","longitude","display_name","country_code","house_number","road","postcode","town","municipality","formatted_address","RoutingMachine","createControlComponent","waypoints","renderInfo","loadIconColor","getIconColor","L","Routing","Plan","createMarker","wp","nWps","DivIcon","html","ReactDOMServer","FaMapMarkerAlt","pin","iconAnchor","popupAnchor","marker","latLng","bindPopup","innerHTML","setMarkerRef","autoRoute","addWaypoints","routeWhileDragging","fitSelectedRoutes","showAlternatives","CurrentLocation","_position$latitude2","_position$longitude2","isIgnitionOn","_item$ignition","ignition","googleMapsQuery","hasValidInfo","renderAddress","_position$latitude","_position$longitude","containerOn","containerOff","labelAddress","linkIcon","FaExternalLinkAlt","SortingDropdown","_options$find","onSortChange","defaultOption","closeDropOnSelect","selectedOption","setSelectedOption","FaSortAmountDown","FaSortAmountUp","dropdownRef","handleClickOutside","contains","sortingDropdown","opt","handleSortChange","clipPath","SvgEcoConducao","xmlnsXlink","EcoDriving","idx","calcEcoColor","val","calcEcoRowColor","row_eco_success","row_eco_warning","row_eco_danger","eco","eco_success","eco_warning","eco_danger","EcoIcon","class","getContent","ecoValueTooltip","ecoValue","p08","until","MarkerPopup","_position$licensePlat","_position$speed","isRoute","isOnMovement","_item$movement","movement","licensePlate","onMovementLabel","RecenterAutomatically","lng","zoom","useMap","setView","CarGpsTab","_localStorage$getItem","routes","setRoutes","setDate","setPosition","setWaypoints","setZoom","selectedRouteKey","setSelectedRouteKey","waypointsInfo","setWaypointsInfo","redOptions","setOrderBy","showPoints","setShowPoints","loaded","setLoaded","positionLoaded","setPositionLoaded","_routes","positionResult","GeoLocatorItem","fuelLevel","isLast","tooltipMessage","formatedAddress","iconLine","labelDate","moving","infoFuel","FaGasPump","labelFuel","GeoRoutes","startLatitude","startLongitude","stopLatitude","stopLongitude","stopDate","startKm","stopKm","startFuelLevel","stopFuelLevel","idling","startAddress","stopAddress","card","_waypoints$latitude","_waypoints$longitude","_waypoints$0$latitude","_waypoints$0$longitud","_waypoints","_i$latitude","_i$longitude","calculateZoom","loadWaypoints","cardBody","sourcePin","destinationPin","cardFooter","spaceBetween","flexWrap","mr","calcTimeTotalRoute","FaHourglassEnd","calcIdlingTotalRoute","diffInTime","customIcon","pinIgnitionOn","pinIgnitionOff","distance","log2","noDataContainer","popperClassName","onFg","calcTimeTotalRoutes","calcIdlingTotalRoutes","penalty","calcPenaltyTotalRoutes","totalContainer","totalText","toggleContainer","toggleLabel","handleShowPoints","geoLocation","route","stopSpeed","emptyContainer","currentLocation","renderMap","zoomPosition","_zoomPosition$latitud","_zoomPosition$longitu","MapContainer","center","maxZoom","minZoom","scrollWheelZoom","tap","TileLayer","Marker","Popup","Polyline","pathOptions","RecenterMap","getAlertTypeColor","rowColor","getSubjectTypeColor","subject","AlertsFilters","hideVehicleFilter","statusOptions","setStatusOptions","readingOptions","setReadingOptions","ro","_readingOptions$find$","_readingOptions$find","reading","readingName","AlertsFiltersHeader","onChangeCriteria","informationHeader","AlertsList","onReadAlert","onPageChangeCallback","hasAlertsWritePolicy","dateCreated","_row$color","typeDescription","_row$colorType","readDate","readOnly","colorType","dateReaded","vehiclePlate","navigate","navigateUrl","referenceId","readAlert","_1","_2","borderBottom","CarAlertsTab","setAlerts","alertsItems","filtersHeaderContainer","filtersHeader","CarMonthlyChargesFiltersScreen","CarMonthlyChargesTab","renderCostCell","navigateToUrl","contractsCosts","chargesCosts","maintenancesCosts","HelperModal","InfoTour","changeTab","startAt","Tour","selector","maskSpace","rounded","showNumber","accentColor","getCurrentStep","curr","tab","VehicleScreen","_item$id","_item$vehicleBrandNam","_item$vehicleModelNam","_item$vehicleFuels","_item$vehicleFuels2","_item$vehicleLocals","_item$vehicleLocals2","_item$fines","_item$monthlyCostAver","tabAux","setTabAux","consumationTotals","setConsumationTotals","averageEfficiencyTooltip","setAverageEfficiencyTooltip","averageCostTooltip","setAverageCostTooltip","hasVehiclesReadPolicy","hasContractsReadPolicy","hasChargesReadPolicy","hasVehicleMaintenancesReadPolicy","hasAlertsReadPolicy","hasVerificationsReadPolicy","hasAccidentsReadPolicy","hasDashboardPolicy","tourOpen","setTourOpen","setUpdate","manageTourReRender","parseInt","resultConsumation","vehicleConsumptionsByFuel","averageEfficiency","totalCost","totalKilometers","averageCost","_item$segmentFeatures2","_item$segmentFeatures3","canAddVehicles","_item$segmentFeatures","_item$totalAlerts","_item$totalAlerts2","CarGlobalChargeTab","headerBox","opacityBackground","paddingLeft","divDetailsCar","divImage","overlayText","divDesc","labelRegistration","labelDetails","labelDetailsColor","colorTextWarning","vehicleSegmentName","colorName","labelLocal","localName","borderLeft","cont","UserIcon","ReserveIcon","reservationStartDate","reservationEndDate","CalendarIcon","toLocaleDateString","subText","lastKilometersUpdate","_x$consommationMoyenn","_x$consommationMoyenn2","_x$consommationMoyenn3","_x$consommationMoyenn4","DropIcon","consumption","divPoint","current_vehicle_consumption","reference_vehicle_consumption","point","pointRed","pointGreen","fines","lastCleaning","tour","VehicleSegmentsDetails","_vehicleSegment$name","vehicleSegment","setVehicleSegment","hasVehicleSegmentsWritePolicy","VehicleSegmentsList","_itemToRemove$name","vehicleSegmentsPage","setVehicleSegmentsPage","_row$features","translatedFeatures","sortedFeatures","_row$id2","_row$id3","_row$id4","segment","VehicleSegmentsTab","VehicleModelsFiltersScreen","setBrands","_brandsOptions$find$l","_brandsOptions$find","VehicleModelList","vehicleModelsPage","setVehicleModelsPage","hasVehicleModelsWritePolicy","FormController","formController","VehicleModelDetails","_vehicleModel$name","brandList","setBrandList","vehicleModel","setVehicleModel","VehicleModelTab","VehicleBrandsDetails","_vehicleBrand$name","vehicleBrand","setVehicleBrand","vehicleSegments","setVehicleSegments","hasVehicleBrandsWritePolicy","VehicleBrandsList","vehicleBrandsPage","setVehicleBrandsPage","_row$segmentNames","segmentNames","VehicleBrandsTab","SuppliersDetails","_supplier$name","setTypesList","supplier","setSupplier","supplierContacts","hasSuppliersWritePolicy","supplierContactToRemoveIndex","setSupplierContactToRemoveIndex","showRemoveSupplierContact","setShowRemoveSupplierContact","supplierContactsIdsToRemove","setSupplierContactsIdsToRemove","loadedFormValues","setLoadedFormValues","getSupplier","getTypes","supplierTypes","addSupplierContact","_errors$supplierConta","_errors$supplierConta2","_errors$supplierConta3","_errors$supplierConta4","rowSupplierContacts","labelSuppliers","setRemoveSupplierContact","removeSupplierContact","_supplierContacts$fie","SuppliersFiltersScreen","SuppliersList","suppliersPage","setSuppliersPage","logoUrl","SuppliersTab","ColorPicker","onChangeColor","changeColor","hex","colorInput","SketchPicker","pallete","onChangeComplete","ColorPickerController","GenericTypesDetails","_genericType$name","genericType","setGenericType","defaultIcons","setDefaultIcons","iconSelected","setIconSelected","hasGenericTypesWritePolicy","getGenericType","icons","iconSvg","selectedIcon","iconDiv","onGoBack","GenericTypesList","genericTypesPage","setGenericTypesPage","originalGenericTypesPage","setoriginalGenericTypesPage","genericTypesFiltered","_page$items","GenericTypesTab","communications","CommunicationConcatType","CommunicationsDetails","setUsersList","communicationsList","setCommunicationsList","rolesList","setRolesList","communication","setCommunication","filterCommunication","setFilterCommunication","filterUser","setFilterUser","filterRole","setFilterRole","usersListFiltered","setUsersListFiltered","communicationsListFiltered","setCommunicationsListFiltered","rolesListFiltered","setRolesListFiltered","hasCommunicationsWritePolicy","users","RolesService","CommunicationsService","onCommunicationSelected","parseCommunicationFromExpression","_communication$expres","_communication$expres2","andOrMatch","exec","expression","andOr","AND","concatType","OR","usersExpression","usersRegex","usersMatchArray","usersMatch","u","rolesExpression","rolesRegex","rolesMatchArray","rolesMatch","userRole","createExpression","usersString","isAllUsersChecked","rolesString","isAllRolesChecked","debouncedCommunication","indexOf","debouncedUser","debouncedRole","checkFiltered","selectOrUnSelectUsers","selectOrUnSelectRoles","configContainer","communicationsContainer","searchContainer","tableHeader","tableHeaderTitle","communicationContainer","communicationInfo","usersContainer","userContainer","userInfo","checkbox","operationsContainer","multiButton","setAnd","setOr","rolesContainer","roleContainer","roleInfo","system","CommunicationsTab","LanguagesTab","selectedLanguageIndex","functional","invalid","FaExclamationTriangle","isDefault","FaLanguage","languageDefault","ContentManagement","isInnerContainer","onCopy","openContent","setOpenContent","optionSelected","setOptionSelected","FaChevronRight","FaChevronDown","selectContainer","Size","Quill","import","whitelist","ImageResize","ImageDrop","BaseImageFormat","ImageFormatAttributesList","domNode","formats","attribute","hasAttribute","getAttribute","setAttribute","removeAttribute","SummernoteController","imageResize","parchment","displaySize","imageDrop","toolbar","clipboard","matchVisual","onRegisterRef","instance","summernote","ReactQuill","menuItem","minHeight","getListByType","MSG_TYPE_CONTRACTS","MSG_TYPE_CHARGES","MSG_TYPE_CHARGES_SITUATION","MSG_TYPE_CHARGES_STATUS","MSG_TYPE_VERIFICATIONS","MSG_TYPE_ANNOTATIONS","MSG_TYPE_RESERVATIONS","MSG_TYPE_MAINTENANCES","MSG_TYPE_SCHEDULED_MAINTENANCES","isType","enumType","NotificationsDetails","setModel","setSelectedLanguageIndex","isEmail","setIsEmail","hasNotificationsWritePolicy","contextOptions","setContextOptions","contextAreaOptions","setContextAreaOptions","addElement","getEditorSelection","elemQuill","elemQuillEditor","getEditor","insertText","_elem$selectionStart","_elem$selectionEnd","elem","selectionStart","selectionEnd","substring","contextOptionAddContractNumber","contextOptionAddContracType","contextOptionAddContracStartDate","contextOptionAddContracEndDate","contextOptionAddContractContractualKms","contextOptionAddChargeValue","contextOptionAddChargeType","contextOptionAddHaveRefund","contextOptionAddChargeSituation","contextOptionAddChargeStatus","contextOptionAddVerificationDate","contextOptionAddVerificationHour","contextOptionAddVerificationResponsable","contextOptionAddVerificationType","contextOptionAddAnnotationInterventionType","contextOptionAddAnnotation","contextOptionAddReservationDriver","contextOptionAddReservationStartEndDate","contextOptionAddMaintenancePredictedKm","contextOptionAddMaintenancePredictedDate","contextOptionAreaAddContractNumber","contextOptionAreaAddContracType","contextOptionAreaAddContracStartDate","contextOptionAreaAddContracEndDate","contextOptionAreaAddContractContractualKms","contextOptionAreaAddChargeValue","contextOptionAreaAddChargeType","contextOptionAreaAddHaveRefund","contextOptionAreaAddChargeSituation","contextOptionAreaAddChargeStatus","contextOptionAreaAddVerificationDate","contextOptionAreaAddVerificationHour","contextOptionAreaAddVerificationResponsable","contextOptionAreaAddVerificationType","contextOptionAreaAddAnnotationInterventionType","contextOptionAreaAddAnnotation","contextOptionAreaAddReservationDriver","contextOptionAreaAddReservationStartEndDate","contextOptionAreaAddMaintenancePredictedKm","contextOptionAreaAddMaintenancePredictedDate","contextOptionAreaAddScheduledMaintenanceDateHour","contextOptionsDefault","contextAreaOptionsDefault","languageTabVisited","NotificationsService","_list","channel","errorsInForm","getType","sourceItem","onLanguageChange","l","containerWrapper","itemErrors","hideTab","contentManagement","copyLanguage","destinationIndex","langToCopyId","NotificationsList","_itemToRemove$type","notificationsPage","setNotificationsPage","_row$type","_row$type2","_row$type3","_row$type4","NotificationsTab","DamageTypesDetails","_damageType$name","damageType","setDamageType","hasDiagnosticTypesWritePolicy","DamageTypesList","damageTypesPage","setDamageTypesPage","DamageTypesTab","LocalsDetails","_local$name","local","setLocal","localContacts","hasLocalsWritePolicy","localContactToRemoveIndex","setLocalContactToRemoveIndex","showRemoveLocalContact","setShowRemoveLocalContact","localContactsIdsToRemove","setLocalContactsIdsToRemove","getLocal","addLocalContact","_errors$localContacts","_errors$localContacts2","_errors$localContacts3","_errors$localContacts4","rowLocalContacts","labelLocals","setRemoveLocalContact","removeLocalContact","_localContacts$fields","LocalsList","localsPage","setLocalsPage","LocalsTab","SettingsScreen","hasVehicleSegmentsReadPolicy","hasVehicleBrandsReadPolicy","hasVehicleModelsReadPolicy","hasGenericTypesReadPolicy","hasSuppliersReadPolicy","hasLocalsReadPolicy","hasDiagnosticTypesReadPolicy","hasCommunicationsReadPolicy","hasNotificationsReadPolicy","_tabId","DriverUserTab","_itemToRemove$realNam","allRoles","setAllRoles","hasUsersWritePolicy","hasRolesWritePolicy","hasRolesReadPolicy","allDBRoles","userObj","temporaryRoles","_userObj$roles$includ","_userObj$roles","__role","_formData$temporaryRo","_user$roles","RolesDetails","roleId","setRole","goToList","RolesList","rolesPage","setRolesPage","onSelectRole","details","RuleConcatType","RulesDetails","rulesList","setRulesList","rule","setRule","filterRule","setFilterRule","rulesListFiltered","setRulesListFiltered","hasRulesWritePolicy","RulesService","onRuleSelected","parseRuleFromExpression","_rule$expression","_rule$expression2","debouncedRule","alert","rulesContainer","ruleContainer","ruleInfo","RulesTab","UsersFiltersScreen","rolesOptions","setRoles","UsersList","usersPage","setUsersPage","pageLoad","setPageLoad","canAddUsers","_filters$roles","_filters$roles2","SecurityScreen","hasUsersReadPolicy","hasRulesReadPolicy","defaultTab","setActiveTabId","CompanyFiltersScreen","setName","setEmail","setTaxNumber","CompaniesScreen","_companiesPage$curren","companiesPage","setCompaniesPage","download","ImportDataScreen","hasCompanyWritePolicy","setAttachment","companies","setCompanies","setType","_current$id","getCompanies","ImportDataService","submitForm","template","getMonthlyCostCounters","calculateMonthlyCosts","CalculateMonthlyCostsScreen","VehicleMonthlyCostsService","PlanFormItem","plansList","_plansList$find","_plansList$find$label","_plansList$find2","date_start","CompanyScreen","setPlansList","hasLoaded","setHasLoaded","trackingProvidersList","isCreate","allPacksInfo","_result$packs","getPageTitle","_item$name","EFCOLIA","GPSTRACKING","trackingProviderKey","headerPlans","removePlan","tempItem","CounterBoxDriver","_totals$totalRefunds","_totals$totalFines","_totals$totalAccident","SpinIcon","totalRefunds","ConeIcon","DriversFilters","_driversOptions","_vehiclesOptions","refunds","DriversScreen","averageKilometers","driversItems","_totals","DRIVERS","renderImageDescCell","emailDriver","refundsNotDone","totalCostFines","minRefunds","maxRefunds","minFines","maxFines","minAccidents","maxAccidents","DriverChargeTab","reloadCounters","DriverAccidentTab","DriverScreen","criteriaUsers","setCriteriaUsers","filtersUsers","setFiltersUsers","filtersUsersTotal","setFiltersUsersTotal","criteriaCharges","setCriteriaCharges","filtersCharges","setFiltersCharges","filtersChargesTotal","setFiltersChargesTotal","criteriaAccidents","setCriteriaAccidents","filtersAccidents","setFiltersAccidents","filtersAccidentsTotal","setFiltersAccidentsTotal","forceRenderTab","setForceRenderTab","canAddDrivers","onChangeFiltersUsers","forcedChange","updateTotalFiltersUsers","onChangeFiltersAccidents","onChangeFiltersCharges","updateTotalFiltersCharges","updateTotalFiltersAccidents","navigateToTab","VerificationScreen","updateRender","setUpdateRender","_counters$numberVerif","_counters$numberAnnot","_counters$numberAnnot2","_counters$numberAnnot3","numberVerifications","goToDetails","AlertsScreen","getDataCounter","_totals$totalRead","_totals$totalNotRead","EyeIcon","saveOnFilter","ForbiddenScreen","MaintenancesScreen","hasWritePolicy","_counters$numberMaint","MaintenancesIcon","numberMaintenances","VehicleFiltersScreen","hasGps","setHasGps","setInitialModels","setInitialBrands","_models$find2","_brand$find","_brand$find2","_modelsOptions$find$l","_modelsOptions$find","_localsOptions$find$l","_localsOptions$find","VehicleCard","_vehicle$vehicleLocal","_vehicle$id","_vehicle$vehicleBrand","_vehicle$vehicleModel","hasGpsPolicy","onCardPress","cardContainer","cardContainerHeight","iconNumber","cardContent","columnSpec","gpsDataHydrated","noGpsData","columnLocals","columnDriver","bottomLabels","VehiclesScreen","trackingVehicles","setTrackingVehicles","hasImportsWritePolicy","setCompanyHaveVehicles","_vehiclesDB$items","_vehiclesDB$items$fil","ids","gps","onCardClick","locationUrl","_f$page","tags","renderStartUsingFleetMax","buttonAdd","debounced2","inputSearchContainerCustomization","brandName","modelName","defaultDriverName","trackingVehicle","tv","hydrateTracking","getVehicles","getListByVehicleId","validateDates","resetTime","formatTimeNumber","toLocaleString","minimumIntegerDigits","useGrouping","DateWithHourController","timeInput","ReservationFormScreen","_userProfile$policies","_userProfile$policies2","reservation","validDate","setValidDate","isOwner","userCreatedId","canWrite","reservationState","setReservationState","validateDate","_reservationState$id","VehicleReservationsService","idNewReservation","reservationDB","smallLabel","warningMessage","reason","ReservationFilters","setSegmentsOptions","modelsList","_modelsList$find","brandsList","_brandsList$find","filtersLabel","searchButton","ReservationScreen","isSearch","openRows","setOpenRows","openReservationDetailsPopover","setOpenReservationDetailsPopover","openReservationEditPopover","setOpenReservationEditPopover","parentItemToRemove","setParentItemToRemove","canEditAll","setReservationFilters","toggleRowOpen","getReservations","reservationsCriteria","reservationsList","vv","reservations","reservationsReachedEnd","forceOpen","formateDate","now","vehicleCell","imageCell","availability","availabilities","renderButtonCell","getElementsByTagName","reserveButton","tableSubColumns","toLocaleTimeString","renderActionsCell","paddingRight","parent","FaEllipsisV","alertMessage","iconAlertMessage","alabaster","DashboardScreen","_filters$dateFrom","_filters$dateTo","_vehicles$find","setData","vehiclesList","getListItems","updateFileItem","ImportChargeFormScreen","itemState","setItemState","__typesOptions","ImportChargeService","line","typeCode","ImportChargeScreen","_expenseFileItemsPage","_expenseFileItemsPage2","_expenseFileItemsPage3","_expenseFileItemsPage4","_itemToRemove$fileNam","expenseFile","setExpenseFile","expenseFileItemsPage","setExpenseFileItemsPage","templateOptions","setTemplateOptions","openItemEditPopover","setOpenItemEditPopover","refreshList","setRefreshList","formAdd","setSupplierId","setSupplierName","criteriap","tableEditColumns","errorField","delayHide","scrollHide","_row$qty","qty","_row$kilometers","tableDetailsColumns","templates","ExpenseTemplatesService","isCharges","expenseFileId","expenseTemplateId","finally","submitAdd","processFile","validated","ImportChargeFilters","ImportChargesScreen","_importExpenseFilePag","_importExpenseFilePag2","_importExpenseFilePag3","_importExpenseFilePag4","importExpenseFilePage","setImportExpenseFilePage","VehiclesMileageFiltersScreen","showTrajectDatesFilter","projectionsExceeded","pathStartDate","pathEndDate","VehiclesMileageScreen","iteration","formatTotalMinutes","renderPathCell","totalPenalty","calcPenaltyTotal","toolTipDivFitContent","totalIdling","useContractId","useContractNumber","useContractEndDate","useContractStartDate","diff","useContractKmVehicle","current_kms","contract_kms","past_months","useContractKmsReal","_row$useContractKmCon","_row$averageTargetMon","useContractKmsByMonth","useContractKmContractual","contract_months","renderContractCell","_row$useContractKmsRe2","_row$useContractMonth","_row$useContractPastM","_row$projectionExceed","projection","real_kms","remaining_months","projectionExceeded","smallCustomizationDanger","vehicle_kms","GaugeDangerIcon","_vehicles$","it","vehiclesToHydrate","trackingDeviceIds","gpsData","_vehicles","_counters$numberVehic2","_counters$kmsExceeded","numberVehiclesExceeded","kmsExceeded","DrawTools","onCreated","onDrawStart","onDrawStop","FeatureGroup","EditControl","layer","mRadius","_mRadius","_radius","_latlng","draw","rectangle","circlemarker","polygon","polyline","shapeOptions","edit","getMyHotSpots","deselect","HotSpotModal","setIsLoading","hotSpot","HotSpotsService","VehicleGpsFiltersScreen","selectIgnition","setSelectIgnition","onSelectIgnition","ZoomLevelControl","onZoomChange","mapEvents","useMapEvents","zoomend","getZoom","VehiclesGpsScreen","area","setArea","drawingArea","setDrawingArea","points","setPoints","pointsInfo","setPointsInfo","pointsOnMapInfo","setPointsOnMapInfo","selectedPoint","setSelectedPoint","showSaveAreaModal","setShowSaveAreaModal","setHotSpot","hotSpots","setHotSpots","currentPosition","setCurrentPosition","isDrawing","setIsDrawing","loadedOnce","setLoadedOnce","markers","isSearching","loadHotSpots","geolocation","getCurrentPosition","searchPage","loadHotSpot","hotSpotId","drawLocales","selectHostSpot","_hotSpots","selectedHotSpot","_hotSpot","_area$latitude","_area$longitude","_area$mRadius","_area$latitude2","_area$longitude2","_area$mRadius2","_pointsInfo","_points","pointsInfoMap","prev","_pointsInfoMap","_pointsMap","_i$latitude2","_i$longitude2","_i$latitude3","_i$longitude3","VEHICLES_GPS","_area$latitude3","_area$longitude3","_area$mRadius3","_i$latitude4","_i$longitude4","cleanHotSpot","_pointsInfo$i","GeoPositions","_markers$current$find","openPopup","cardHeader","descriptionContainer","onCurrentLocationPress","onCreateArea","getCoordsToCenter","coords","colLeft","selectCol","trashButton","emptyContainerRow","emptyLabel","cardsList","totalPoints","InfiniteScroll","dataLength","loader","hasMore","next","scrollableTarget","circleButton","FaCircle","_getCoordsToCenter","_getCoordsToCenter2","zoomSnap","zoomDelta","Circle","_pointsOnMapInfo$i$ve","getAlarmTriggersList","getCompanyVehiclesList","AlarmsListScreen","alarms","setAlarms","_alarmsItems$totalPag","_alarmsItems$totalPag2","_alarmsItems$items","alarmsItems","AlarmsService","ALARMS","renderTableTypeCell","renderTableCell","numberTriggers","renderActiveColTableCell","defaultChecked","TimePickerController","minTime","onChangeTime","setReset","getMinutes","handleClear","AlarmTab","alarm","daysOfWeekSelected","onSelectDayOfWeek","selectedAlarmType","setSelectedAlarmType","alarmTypes","setAlarmTypes","zoomDefault","setZoomDefault","formValues","setFormValues","reloadData","setReloadData","defaultWeekdays","setDefaultWeekdays","onChangeType","at","clearForm","rowVersion","clearArea","onChangeCoordinates","accuracy","altitude","altitudeAccuracy","heading","timestamp","_position$coords$lati","_position$coords","_position$coords$long","_position$coords2","_Storage$get","week","dow","weekday","_alarmData$zoom","alarmData","typeSelected","dataMappings","notificationsEnabled","startHour","stopHour","duration","entries","areaAux","loadData","localeCompare","dayOfWeek","onKeyPress","smallButtonsContainer","VehiclesTab","vehiclesSelected","onSelectAllVehicles","onSelectVehicle","allVehiclesSelected","setAllVehiclesSelected","alarmId","allVehiclesIds","setAllVehiclesIds","updatedVehicles","selectedVehicle","notificationsTotal","isToAdd","onCheckVehicle","flexRow","triggers","setTriggers","_alarmesTriggers$item","alarmesTriggers","triggerDate","renderAddressCell","small","AlarmScreen","setAlarm","selectedVehicles","setSelectedVehicles","selectedDaysOfWeek","setSelectedDaysOfWeek","formHasErrors","setFormHasErros","_result$vehicles","_result$daysOfWeek","daysOfWeek","alarmName","_formData$startHour","_formData$stopHour","_formData$limit","_formData$latitude","_formData$longitude","_formData$radius","_formData$zoom","_formData$duration","_alarm$rowVersion","_formData$notificatio","trigger","splittedTime","timeoutId","clearTimeout","isValid","handleChangeTab","HomeRedirection","DefaultRouter","Router","Switch","NewAccount","Setup","trackingID","ReactGA","initialize","ex","queryClient","QueryClient","defaultOptions","queries","staleTime","Infinity","App","Provider","QueryClientProvider","client","I18nextProvider","ToastProvider","autoDismiss","autoDismissTimeout","placement","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","plus","BigNumber","toNumber","minus","multiply","multipliedBy","divide","dividedBy","toBig","isNullOrEmpty","require","extend","setAppElement","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.546e73ea.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MonthlyCostChart_elevation-1__34G7S\",\"elevation-2\":\"MonthlyCostChart_elevation-2__2scLJ\",\"elevation-3\":\"MonthlyCostChart_elevation-3__2iibs\",\"elevation-4\":\"MonthlyCostChart_elevation-4__1hmV5\",\"elevation-5\":\"MonthlyCostChart_elevation-5__QC7w7\",\"elevation-6\":\"MonthlyCostChart_elevation-6__zQIzX\",\"elevation-7\":\"MonthlyCostChart_elevation-7__M07Eq\",\"elevation-8\":\"MonthlyCostChart_elevation-8__8ewtm\",\"elevation-9\":\"MonthlyCostChart_elevation-9__1feJr\",\"elevation-10\":\"MonthlyCostChart_elevation-10__31NOS\",\"elevation-11\":\"MonthlyCostChart_elevation-11__1D7xw\",\"elevation-12\":\"MonthlyCostChart_elevation-12__2vtXP\",\"elevation-13\":\"MonthlyCostChart_elevation-13__2CAPk\",\"elevation-14\":\"MonthlyCostChart_elevation-14__2ctSB\",\"elevation-15\":\"MonthlyCostChart_elevation-15__3_tNJ\",\"elevation-16\":\"MonthlyCostChart_elevation-16__8ZUYZ\",\"elevation-17\":\"MonthlyCostChart_elevation-17__22QzX\",\"elevation-18\":\"MonthlyCostChart_elevation-18__J8rU5\",\"elevation-19\":\"MonthlyCostChart_elevation-19__OrG4b\",\"elevation-20\":\"MonthlyCostChart_elevation-20__2uM36\",\"elevation-21\":\"MonthlyCostChart_elevation-21__2s6Ia\",\"elevation-22\":\"MonthlyCostChart_elevation-22__pRGLK\",\"elevation-23\":\"MonthlyCostChart_elevation-23__10J5z\",\"elevation-24\":\"MonthlyCostChart_elevation-24__1hilB\",\"noEnoughInfoText\":\"MonthlyCostChart_noEnoughInfoText__1tcgu\",\"container\":\"MonthlyCostChart_container__QBmFy\",\"chartContainer\":\"MonthlyCostChart_chartContainer__2gXkx\",\"countersContainer\":\"MonthlyCostChart_countersContainer__1dUJK\",\"counter\":\"MonthlyCostChart_counter__3wSPB\",\"counterLabel\":\"MonthlyCostChart_counterLabel__2VkRo\",\"counterValue\":\"MonthlyCostChart_counterValue__cTEFT\",\"counterRightBorder\":\"MonthlyCostChart_counterRightBorder__LOjww\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chartCol\":\"ChartsBoxes_chartCol__1Li33\",\"chartContainer\":\"ChartsBoxes_chartContainer__uT0i8\",\"chartBody\":\"ChartsBoxes_chartBody__12KAd\",\"centerAlign\":\"ChartsBoxes_centerAlign__30EwR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesMileageFiltersScreen_elevation-1__2S6_x\",\"elevation-2\":\"VehiclesMileageFiltersScreen_elevation-2__27_PG\",\"elevation-3\":\"VehiclesMileageFiltersScreen_elevation-3__1kcZb\",\"elevation-4\":\"VehiclesMileageFiltersScreen_elevation-4__a3wj-\",\"elevation-5\":\"VehiclesMileageFiltersScreen_elevation-5__3yccM\",\"elevation-6\":\"VehiclesMileageFiltersScreen_elevation-6__3xwcw\",\"elevation-7\":\"VehiclesMileageFiltersScreen_elevation-7__2dQeT\",\"elevation-8\":\"VehiclesMileageFiltersScreen_elevation-8__1oOV7\",\"elevation-9\":\"VehiclesMileageFiltersScreen_elevation-9__VIH6q\",\"elevation-10\":\"VehiclesMileageFiltersScreen_elevation-10__3QL0n\",\"elevation-11\":\"VehiclesMileageFiltersScreen_elevation-11__a_s37\",\"elevation-12\":\"VehiclesMileageFiltersScreen_elevation-12__3v49n\",\"elevation-13\":\"VehiclesMileageFiltersScreen_elevation-13__3LlRE\",\"elevation-14\":\"VehiclesMileageFiltersScreen_elevation-14__R15QT\",\"elevation-15\":\"VehiclesMileageFiltersScreen_elevation-15__24VPl\",\"elevation-16\":\"VehiclesMileageFiltersScreen_elevation-16__146oK\",\"elevation-17\":\"VehiclesMileageFiltersScreen_elevation-17___T5nr\",\"elevation-18\":\"VehiclesMileageFiltersScreen_elevation-18__2smUK\",\"elevation-19\":\"VehiclesMileageFiltersScreen_elevation-19__RSSZs\",\"elevation-20\":\"VehiclesMileageFiltersScreen_elevation-20__3-GZH\",\"elevation-21\":\"VehiclesMileageFiltersScreen_elevation-21__2B6i2\",\"elevation-22\":\"VehiclesMileageFiltersScreen_elevation-22__3OeQk\",\"elevation-23\":\"VehiclesMileageFiltersScreen_elevation-23__2yyVT\",\"elevation-24\":\"VehiclesMileageFiltersScreen_elevation-24__3O40a\",\"bold\":\"VehiclesMileageFiltersScreen_bold__B4a6-\",\"formContent\":\"VehiclesMileageFiltersScreen_formContent__2db5w\",\"buttonsFooter\":\"VehiclesMileageFiltersScreen_buttonsFooter__KnkNK\",\"dateRangeCustom\":\"VehiclesMileageFiltersScreen_dateRangeCustom__3AKS2\",\"useContractStatus\":\"VehiclesMileageFiltersScreen_useContractStatus__OH0Hi\",\"placeholder\":\"VehiclesMileageFiltersScreen_placeholder__2sqlx\",\"labelContainer\":\"VehiclesMileageFiltersScreen_labelContainer__4v-p5\",\"selected\":\"VehiclesMileageFiltersScreen_selected__3o0Um\",\"notSelected\":\"VehiclesMileageFiltersScreen_notSelected__1aPBD\",\"labelContent\":\"VehiclesMileageFiltersScreen_labelContent__3S6K7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesManagementFiltersScreen_elevation-1__SblUA\",\"elevation-2\":\"VehiclesManagementFiltersScreen_elevation-2__1XIhV\",\"elevation-3\":\"VehiclesManagementFiltersScreen_elevation-3__391jm\",\"elevation-4\":\"VehiclesManagementFiltersScreen_elevation-4__23rEr\",\"elevation-5\":\"VehiclesManagementFiltersScreen_elevation-5__283-U\",\"elevation-6\":\"VehiclesManagementFiltersScreen_elevation-6__ADe28\",\"elevation-7\":\"VehiclesManagementFiltersScreen_elevation-7__27Jzi\",\"elevation-8\":\"VehiclesManagementFiltersScreen_elevation-8__bNe5Z\",\"elevation-9\":\"VehiclesManagementFiltersScreen_elevation-9__38kME\",\"elevation-10\":\"VehiclesManagementFiltersScreen_elevation-10__11PPf\",\"elevation-11\":\"VehiclesManagementFiltersScreen_elevation-11__1OEGI\",\"elevation-12\":\"VehiclesManagementFiltersScreen_elevation-12___lEen\",\"elevation-13\":\"VehiclesManagementFiltersScreen_elevation-13__2F9Qo\",\"elevation-14\":\"VehiclesManagementFiltersScreen_elevation-14__30dHX\",\"elevation-15\":\"VehiclesManagementFiltersScreen_elevation-15__3NfrN\",\"elevation-16\":\"VehiclesManagementFiltersScreen_elevation-16__G2_Z6\",\"elevation-17\":\"VehiclesManagementFiltersScreen_elevation-17__7yrg_\",\"elevation-18\":\"VehiclesManagementFiltersScreen_elevation-18__QxIF_\",\"elevation-19\":\"VehiclesManagementFiltersScreen_elevation-19__2QOps\",\"elevation-20\":\"VehiclesManagementFiltersScreen_elevation-20__1bGyy\",\"elevation-21\":\"VehiclesManagementFiltersScreen_elevation-21__3vlH4\",\"elevation-22\":\"VehiclesManagementFiltersScreen_elevation-22__25M4Y\",\"elevation-23\":\"VehiclesManagementFiltersScreen_elevation-23__3O-4U\",\"elevation-24\":\"VehiclesManagementFiltersScreen_elevation-24__1eZFK\",\"bold\":\"VehiclesManagementFiltersScreen_bold__7lZxI\",\"formContent\":\"VehiclesManagementFiltersScreen_formContent__2aWLw\",\"buttonsFooter\":\"VehiclesManagementFiltersScreen_buttonsFooter__30tvx\",\"dateRangeCustom\":\"VehiclesManagementFiltersScreen_dateRangeCustom__3fc1b\",\"useContractStatus\":\"VehiclesManagementFiltersScreen_useContractStatus__148VD\",\"placeholder\":\"VehiclesManagementFiltersScreen_placeholder__2Ny9B\",\"labelContainer\":\"VehiclesManagementFiltersScreen_labelContainer__1Clte\",\"selected\":\"VehiclesManagementFiltersScreen_selected__q4xtv\",\"notSelected\":\"VehiclesManagementFiltersScreen_notSelected__1ADYv\",\"labelContent\":\"VehiclesManagementFiltersScreen_labelContent__zX_Hm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Invoices_elevation-1__3Xvb9\",\"elevation-2\":\"Invoices_elevation-2__24VW9\",\"elevation-3\":\"Invoices_elevation-3__3Tbg9\",\"elevation-4\":\"Invoices_elevation-4__FJFgc\",\"elevation-5\":\"Invoices_elevation-5__3NHwy\",\"elevation-6\":\"Invoices_elevation-6__GFrtG\",\"elevation-7\":\"Invoices_elevation-7__3nBbv\",\"elevation-8\":\"Invoices_elevation-8__BVH7P\",\"elevation-9\":\"Invoices_elevation-9__3dHXI\",\"elevation-10\":\"Invoices_elevation-10__3_FQQ\",\"elevation-11\":\"Invoices_elevation-11__3GfiR\",\"elevation-12\":\"Invoices_elevation-12__kgAP3\",\"elevation-13\":\"Invoices_elevation-13__3WJoe\",\"elevation-14\":\"Invoices_elevation-14__1QUmo\",\"elevation-15\":\"Invoices_elevation-15__2Ap6r\",\"elevation-16\":\"Invoices_elevation-16__1lYtF\",\"elevation-17\":\"Invoices_elevation-17__dTqIu\",\"elevation-18\":\"Invoices_elevation-18__OtxEk\",\"elevation-19\":\"Invoices_elevation-19__2U-dU\",\"elevation-20\":\"Invoices_elevation-20__2h4Uq\",\"elevation-21\":\"Invoices_elevation-21__AtDGq\",\"elevation-22\":\"Invoices_elevation-22__hzvur\",\"elevation-23\":\"Invoices_elevation-23__1JfjY\",\"elevation-24\":\"Invoices_elevation-24__2Edpy\",\"subtitle\":\"Invoices_subtitle__1VAh3\",\"label\":\"Invoices_label__Vp8kE\",\"dateRangeCustom\":\"Invoices_dateRangeCustom__3uvUe\",\"displayBetween\":\"Invoices_displayBetween__1EBRe\",\"displayCenter\":\"Invoices_displayCenter__2AxJE\",\"timelineItem\":\"Invoices_timelineItem__2k2T-\",\"circle\":\"Invoices_circle__2HOyk\",\"dateTime\":\"Invoices_dateTime__1ve9n\",\"file\":\"Invoices_file__iFF6M\",\"removeIconDiv\":\"Invoices_removeIconDiv__1refM\",\"buttonsContainer\":\"Invoices_buttonsContainer__3GNnM\",\"container\":\"Invoices_container__1M0Wf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ListAccidentsScreen_elevation-1__2p84a\",\"elevation-2\":\"ListAccidentsScreen_elevation-2__z9wRo\",\"elevation-3\":\"ListAccidentsScreen_elevation-3__1OAok\",\"elevation-4\":\"ListAccidentsScreen_elevation-4__3PrVh\",\"elevation-5\":\"ListAccidentsScreen_elevation-5__B-TNl\",\"elevation-6\":\"ListAccidentsScreen_elevation-6__1XWwU\",\"elevation-7\":\"ListAccidentsScreen_elevation-7__f-Z2V\",\"elevation-8\":\"ListAccidentsScreen_elevation-8__24NEq\",\"elevation-9\":\"ListAccidentsScreen_elevation-9__12OEw\",\"elevation-10\":\"ListAccidentsScreen_elevation-10__kB5su\",\"elevation-11\":\"ListAccidentsScreen_elevation-11__hFOA-\",\"elevation-12\":\"ListAccidentsScreen_elevation-12__3g-zb\",\"elevation-13\":\"ListAccidentsScreen_elevation-13__3dIcE\",\"elevation-14\":\"ListAccidentsScreen_elevation-14__5N2xH\",\"elevation-15\":\"ListAccidentsScreen_elevation-15__1qYqd\",\"elevation-16\":\"ListAccidentsScreen_elevation-16__pmpK1\",\"elevation-17\":\"ListAccidentsScreen_elevation-17__IGt9z\",\"elevation-18\":\"ListAccidentsScreen_elevation-18__vJu8o\",\"elevation-19\":\"ListAccidentsScreen_elevation-19__1Xcrm\",\"elevation-20\":\"ListAccidentsScreen_elevation-20__1M2PU\",\"elevation-21\":\"ListAccidentsScreen_elevation-21__Pqd9Z\",\"elevation-22\":\"ListAccidentsScreen_elevation-22__3Yi_o\",\"elevation-23\":\"ListAccidentsScreen_elevation-23__3Ym9z\",\"elevation-24\":\"ListAccidentsScreen_elevation-24__MVVf9\",\"tabHeader\":\"ListAccidentsScreen_tabHeader__68Uxx\",\"rowFlex\":\"ListAccidentsScreen_rowFlex__EbIHo\",\"filtersPopoverContainer\":\"ListAccidentsScreen_filtersPopoverContainer__G-PV9\",\"counterList\":\"ListAccidentsScreen_counterList__1ReVi\",\"counterNumber\":\"ListAccidentsScreen_counterNumber__1C68_\",\"bold\":\"ListAccidentsScreen_bold__2HzmB\",\"date\":\"ListAccidentsScreen_date__39KAJ\",\"dateResponsibleColumn\":\"ListAccidentsScreen_dateResponsibleColumn__SC_m9\",\"statusColumn\":\"ListAccidentsScreen_statusColumn__C1Gj9\",\"colorDanger\":\"ListAccidentsScreen_colorDanger__r5d73\",\"colorSuccess\":\"ListAccidentsScreen_colorSuccess__Mt8i4\",\"imageDescCell\":\"ListAccidentsScreen_imageDescCell__3iIf3\",\"descCell\":\"ListAccidentsScreen_descCell__2mc9e\",\"contentImage\":\"ListAccidentsScreen_contentImage__2xWsU\",\"img\":\"ListAccidentsScreen_img__2UJJF\",\"columnPlate\":\"ListAccidentsScreen_columnPlate__2Lgjy\",\"columnBrand\":\"ListAccidentsScreen_columnBrand__3Bkxj\",\"columnSpec\":\"ListAccidentsScreen_columnSpec__8cPqa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DriverUserTab_container__3BOeS\",\"pageNameContainer\":\"DriverUserTab_pageNameContainer__3Mm0y\",\"pageNameContent\":\"DriverUserTab_pageNameContent__2h67k\",\"pageNameContentImage\":\"DriverUserTab_pageNameContentImage__20JWb\",\"pageNameContentText\":\"DriverUserTab_pageNameContentText__3yqT8\",\"usernameCol\":\"DriverUserTab_usernameCol__uz2mB\",\"form\":\"DriverUserTab_form__7JnB7\",\"label\":\"DriverUserTab_label__1uka5\",\"buttonContainer\":\"DriverUserTab_buttonContainer__2h03g\",\"roles\":\"DriverUserTab_roles__2vF5O\",\"avatarContainer\":\"DriverUserTab_avatarContainer__1DLOa\",\"avatarChooser\":\"DriverUserTab_avatarChooser__3o1nP\",\"avatarImage\":\"DriverUserTab_avatarImage__2GpY6\",\"avatarFilesList\":\"DriverUserTab_avatarFilesList__1FRgb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NextMaintenances_elevation-1__15rlw\",\"elevation-2\":\"NextMaintenances_elevation-2__2j6E6\",\"elevation-3\":\"NextMaintenances_elevation-3__1ImQ6\",\"elevation-4\":\"NextMaintenances_elevation-4__3WSZ4\",\"elevation-5\":\"NextMaintenances_elevation-5__16hOz\",\"elevation-6\":\"NextMaintenances_elevation-6__2cz1s\",\"elevation-7\":\"NextMaintenances_elevation-7__3ojd_\",\"elevation-8\":\"NextMaintenances_elevation-8__11Tml\",\"elevation-9\":\"NextMaintenances_elevation-9__3cY4-\",\"elevation-10\":\"NextMaintenances_elevation-10__2bE_3\",\"elevation-11\":\"NextMaintenances_elevation-11__1hb8B\",\"elevation-12\":\"NextMaintenances_elevation-12__1ysfb\",\"elevation-13\":\"NextMaintenances_elevation-13__3ox-f\",\"elevation-14\":\"NextMaintenances_elevation-14__1WyLb\",\"elevation-15\":\"NextMaintenances_elevation-15__hlclc\",\"elevation-16\":\"NextMaintenances_elevation-16__2wu83\",\"elevation-17\":\"NextMaintenances_elevation-17__38KMm\",\"elevation-18\":\"NextMaintenances_elevation-18__B1NmI\",\"elevation-19\":\"NextMaintenances_elevation-19__NIHPD\",\"elevation-20\":\"NextMaintenances_elevation-20__A8AWM\",\"elevation-21\":\"NextMaintenances_elevation-21__31-et\",\"elevation-22\":\"NextMaintenances_elevation-22__2z2Nz\",\"elevation-23\":\"NextMaintenances_elevation-23__1GfNy\",\"elevation-24\":\"NextMaintenances_elevation-24__1NIIy\",\"noEnoughInfoText\":\"NextMaintenances_noEnoughInfoText__14x9s\",\"container\":\"NextMaintenances_container__XYlbI\",\"item\":\"NextMaintenances_item__Nr8-2\",\"itemRow\":\"NextMaintenances_itemRow__1zNhA\",\"itemText\":\"NextMaintenances_itemText__3wQiO\",\"itemVehicleRegistrationNumberText\":\"NextMaintenances_itemVehicleRegistrationNumberText__xqdAq\",\"itemLeft\":\"NextMaintenances_itemLeft__3oY0B\",\"itemRight\":\"NextMaintenances_itemRight__3MWQF\",\"dateText\":\"NextMaintenances_dateText__3dcb7\",\"contentImage\":\"NextMaintenances_contentImage__18s4a\",\"img\":\"NextMaintenances_img__2HyH1\",\"contentData\":\"NextMaintenances_contentData__1tjQa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MonthlyRouteChart_elevation-1__2cl-z\",\"elevation-2\":\"MonthlyRouteChart_elevation-2__RS0ZN\",\"elevation-3\":\"MonthlyRouteChart_elevation-3__2kJMi\",\"elevation-4\":\"MonthlyRouteChart_elevation-4__2Gxf0\",\"elevation-5\":\"MonthlyRouteChart_elevation-5__39fqc\",\"elevation-6\":\"MonthlyRouteChart_elevation-6__2c932\",\"elevation-7\":\"MonthlyRouteChart_elevation-7__2a3i8\",\"elevation-8\":\"MonthlyRouteChart_elevation-8__35Muf\",\"elevation-9\":\"MonthlyRouteChart_elevation-9__xbjgL\",\"elevation-10\":\"MonthlyRouteChart_elevation-10__37IVJ\",\"elevation-11\":\"MonthlyRouteChart_elevation-11__H_BJz\",\"elevation-12\":\"MonthlyRouteChart_elevation-12__33D23\",\"elevation-13\":\"MonthlyRouteChart_elevation-13__rvCIF\",\"elevation-14\":\"MonthlyRouteChart_elevation-14___Sjy_\",\"elevation-15\":\"MonthlyRouteChart_elevation-15__2VJId\",\"elevation-16\":\"MonthlyRouteChart_elevation-16__Ypmzz\",\"elevation-17\":\"MonthlyRouteChart_elevation-17__3tWr_\",\"elevation-18\":\"MonthlyRouteChart_elevation-18__3tDkV\",\"elevation-19\":\"MonthlyRouteChart_elevation-19__1XmmW\",\"elevation-20\":\"MonthlyRouteChart_elevation-20__13Vda\",\"elevation-21\":\"MonthlyRouteChart_elevation-21__3_w4a\",\"elevation-22\":\"MonthlyRouteChart_elevation-22__267ic\",\"elevation-23\":\"MonthlyRouteChart_elevation-23__28osJ\",\"elevation-24\":\"MonthlyRouteChart_elevation-24__1V22G\",\"noEnoughInfoText\":\"MonthlyRouteChart_noEnoughInfoText__2E5WB\",\"container\":\"MonthlyRouteChart_container__px_Wz\",\"chartContainer\":\"MonthlyRouteChart_chartContainer__2RF-u\",\"countersContainer\":\"MonthlyRouteChart_countersContainer__284i3\",\"counter\":\"MonthlyRouteChart_counter__3_d9X\",\"counterLabel\":\"MonthlyRouteChart_counterLabel__3WoZx\",\"counterValue\":\"MonthlyRouteChart_counterValue__1rmOU\",\"counterRightBorder\":\"MonthlyRouteChart_counterRightBorder___uDJI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlertsList_elevation-1__2eCi_\",\"elevation-2\":\"AlertsList_elevation-2__E0Nq4\",\"elevation-3\":\"AlertsList_elevation-3__pyS5I\",\"elevation-4\":\"AlertsList_elevation-4__fhCnL\",\"elevation-5\":\"AlertsList_elevation-5__3RDiv\",\"elevation-6\":\"AlertsList_elevation-6__30Lzi\",\"elevation-7\":\"AlertsList_elevation-7__3_Ohi\",\"elevation-8\":\"AlertsList_elevation-8__2PmeP\",\"elevation-9\":\"AlertsList_elevation-9__2_krZ\",\"elevation-10\":\"AlertsList_elevation-10__1fi52\",\"elevation-11\":\"AlertsList_elevation-11__3US59\",\"elevation-12\":\"AlertsList_elevation-12__3HZGF\",\"elevation-13\":\"AlertsList_elevation-13__1A9jJ\",\"elevation-14\":\"AlertsList_elevation-14__3OEWd\",\"elevation-15\":\"AlertsList_elevation-15__2RUD_\",\"elevation-16\":\"AlertsList_elevation-16__2VkJv\",\"elevation-17\":\"AlertsList_elevation-17__1MAB5\",\"elevation-18\":\"AlertsList_elevation-18__piRJ8\",\"elevation-19\":\"AlertsList_elevation-19__1vpLa\",\"elevation-20\":\"AlertsList_elevation-20__1uU63\",\"elevation-21\":\"AlertsList_elevation-21__1g-Xd\",\"elevation-22\":\"AlertsList_elevation-22__2KDiZ\",\"elevation-23\":\"AlertsList_elevation-23__tSsIg\",\"elevation-24\":\"AlertsList_elevation-24__3ryWF\",\"messageContainer\":\"AlertsList_messageContainer__14eC_\",\"message\":\"AlertsList_message__1vz_b\",\"annotation\":\"AlertsList_annotation__S3d5Z\",\"table\":\"AlertsList_table__1xNxe\",\"imageDescCell\":\"AlertsList_imageDescCell__3igIt\",\"descCell\":\"AlertsList_descCell___Cn0U\",\"contentImage\":\"AlertsList_contentImage__3OkQ8\",\"img\":\"AlertsList_img__1OCus\",\"columnPlate\":\"AlertsList_columnPlate__39Sq2\",\"columnBrand\":\"AlertsList_columnBrand__LCJ4r\",\"dateCreated\":\"AlertsList_dateCreated__3u0II\",\"bold\":\"AlertsList_bold__KEk3a\",\"typeDescription\":\"AlertsList_typeDescription__qClh2\",\"dateReaded\":\"AlertsList_dateReaded__1lXBL\",\"statusColumn\":\"AlertsList_statusColumn__3FdV_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"GenericTypesDetails_elevation-1__3EbRv\",\"elevation-2\":\"GenericTypesDetails_elevation-2__1TYG9\",\"elevation-3\":\"GenericTypesDetails_elevation-3__2eCnk\",\"elevation-4\":\"GenericTypesDetails_elevation-4__1Ok25\",\"elevation-5\":\"GenericTypesDetails_elevation-5__3bACc\",\"elevation-6\":\"GenericTypesDetails_elevation-6__R0vKw\",\"elevation-7\":\"GenericTypesDetails_elevation-7__3CNmb\",\"elevation-8\":\"GenericTypesDetails_elevation-8__3rVa-\",\"elevation-9\":\"GenericTypesDetails_elevation-9__1Eo4O\",\"elevation-10\":\"GenericTypesDetails_elevation-10__ljICv\",\"elevation-11\":\"GenericTypesDetails_elevation-11__2PB7N\",\"elevation-12\":\"GenericTypesDetails_elevation-12__3wzrs\",\"elevation-13\":\"GenericTypesDetails_elevation-13__5l0pU\",\"elevation-14\":\"GenericTypesDetails_elevation-14__15kWT\",\"elevation-15\":\"GenericTypesDetails_elevation-15__3TG3m\",\"elevation-16\":\"GenericTypesDetails_elevation-16__1xbCG\",\"elevation-17\":\"GenericTypesDetails_elevation-17__26_cO\",\"elevation-18\":\"GenericTypesDetails_elevation-18__iVYkf\",\"elevation-19\":\"GenericTypesDetails_elevation-19__2vJ4K\",\"elevation-20\":\"GenericTypesDetails_elevation-20__35Baf\",\"elevation-21\":\"GenericTypesDetails_elevation-21__2jDM-\",\"elevation-22\":\"GenericTypesDetails_elevation-22__12DwM\",\"elevation-23\":\"GenericTypesDetails_elevation-23__QHEjG\",\"elevation-24\":\"GenericTypesDetails_elevation-24__ULCqV\",\"pageNameContainer\":\"GenericTypesDetails_pageNameContainer__32mYC\",\"pageNameContent\":\"GenericTypesDetails_pageNameContent__bmo9c\",\"pageNameContentImage\":\"GenericTypesDetails_pageNameContentImage__2-NAZ\",\"pageNameContentText\":\"GenericTypesDetails_pageNameContentText__6OmK5\",\"form\":\"GenericTypesDetails_form__2LILs\",\"label\":\"GenericTypesDetails_label__3Yu6_\",\"image\":\"GenericTypesDetails_image__2snKU\",\"buttonContainer\":\"GenericTypesDetails_buttonContainer__3lKSm\",\"containerSmallButton\":\"GenericTypesDetails_containerSmallButton__3jSx_\",\"iconAdd\":\"GenericTypesDetails_iconAdd__2-4A8\",\"rowSupplierContacts\":\"GenericTypesDetails_rowSupplierContacts__1THZh\",\"labelSuppliers\":\"GenericTypesDetails_labelSuppliers__Gih9R\",\"removeIcon\":\"GenericTypesDetails_removeIcon__2fZp5\",\"noInfoText\":\"GenericTypesDetails_noInfoText__2auT6\",\"iconDiv\":\"GenericTypesDetails_iconDiv__3yZJc\",\"selected\":\"GenericTypesDetails_selected__eVX7L\",\"disabled\":\"GenericTypesDetails_disabled__j4K-p\",\"icon\":\"GenericTypesDetails_icon__2ViuM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InformationForm_elevation-1__2_Yvs\",\"elevation-2\":\"InformationForm_elevation-2__3KTDP\",\"elevation-3\":\"InformationForm_elevation-3__Dcjk5\",\"elevation-4\":\"InformationForm_elevation-4__1jAxd\",\"elevation-5\":\"InformationForm_elevation-5__3wzGI\",\"elevation-6\":\"InformationForm_elevation-6__1s6s0\",\"elevation-7\":\"InformationForm_elevation-7__2UgEB\",\"elevation-8\":\"InformationForm_elevation-8__1DTi1\",\"elevation-9\":\"InformationForm_elevation-9__2uw3p\",\"elevation-10\":\"InformationForm_elevation-10__2nHSy\",\"elevation-11\":\"InformationForm_elevation-11__1j3uv\",\"elevation-12\":\"InformationForm_elevation-12__1hD9W\",\"elevation-13\":\"InformationForm_elevation-13__1wD2H\",\"elevation-14\":\"InformationForm_elevation-14__3tkyS\",\"elevation-15\":\"InformationForm_elevation-15__lvFeU\",\"elevation-16\":\"InformationForm_elevation-16__27j2u\",\"elevation-17\":\"InformationForm_elevation-17__saduw\",\"elevation-18\":\"InformationForm_elevation-18__3y8-Q\",\"elevation-19\":\"InformationForm_elevation-19__1nnsE\",\"elevation-20\":\"InformationForm_elevation-20__3IZA0\",\"elevation-21\":\"InformationForm_elevation-21__bh-2y\",\"elevation-22\":\"InformationForm_elevation-22__2v9Uh\",\"elevation-23\":\"InformationForm_elevation-23__23pdm\",\"elevation-24\":\"InformationForm_elevation-24__3G0W9\",\"verificationInfos\":\"InformationForm_verificationInfos__2CES6\",\"label\":\"InformationForm_label__1v_Zs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleFiltersScreen_elevation-1__2zQS0\",\"elevation-2\":\"VehicleFiltersScreen_elevation-2__2ZdpR\",\"elevation-3\":\"VehicleFiltersScreen_elevation-3__RyiUn\",\"elevation-4\":\"VehicleFiltersScreen_elevation-4__23ngA\",\"elevation-5\":\"VehicleFiltersScreen_elevation-5__DobgW\",\"elevation-6\":\"VehicleFiltersScreen_elevation-6__t7GDp\",\"elevation-7\":\"VehicleFiltersScreen_elevation-7__2TWBh\",\"elevation-8\":\"VehicleFiltersScreen_elevation-8__2-NYP\",\"elevation-9\":\"VehicleFiltersScreen_elevation-9__1t__g\",\"elevation-10\":\"VehicleFiltersScreen_elevation-10__2JxWP\",\"elevation-11\":\"VehicleFiltersScreen_elevation-11__la-HL\",\"elevation-12\":\"VehicleFiltersScreen_elevation-12__kumRU\",\"elevation-13\":\"VehicleFiltersScreen_elevation-13__1zUcG\",\"elevation-14\":\"VehicleFiltersScreen_elevation-14__3O-bY\",\"elevation-15\":\"VehicleFiltersScreen_elevation-15__2gLgL\",\"elevation-16\":\"VehicleFiltersScreen_elevation-16__2q8cl\",\"elevation-17\":\"VehicleFiltersScreen_elevation-17__14qxl\",\"elevation-18\":\"VehicleFiltersScreen_elevation-18__1nfMp\",\"elevation-19\":\"VehicleFiltersScreen_elevation-19__1Rpyv\",\"elevation-20\":\"VehicleFiltersScreen_elevation-20__1k4X0\",\"elevation-21\":\"VehicleFiltersScreen_elevation-21__1UDj4\",\"elevation-22\":\"VehicleFiltersScreen_elevation-22__2PaKT\",\"elevation-23\":\"VehicleFiltersScreen_elevation-23__Ofk3d\",\"elevation-24\":\"VehicleFiltersScreen_elevation-24__4wh50\",\"bold\":\"VehicleFiltersScreen_bold__17NgR\",\"formContent\":\"VehicleFiltersScreen_formContent__1bEJi\",\"buttonsFooter\":\"VehicleFiltersScreen_buttonsFooter__1kUOj\",\"dateRangeCustom\":\"VehicleFiltersScreen_dateRangeCustom__39DXf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleGpsFiltersScreen_elevation-1__3ry0r\",\"elevation-2\":\"VehicleGpsFiltersScreen_elevation-2__4Ujzc\",\"elevation-3\":\"VehicleGpsFiltersScreen_elevation-3__NHnBQ\",\"elevation-4\":\"VehicleGpsFiltersScreen_elevation-4__6gvud\",\"elevation-5\":\"VehicleGpsFiltersScreen_elevation-5__2WExk\",\"elevation-6\":\"VehicleGpsFiltersScreen_elevation-6__35kTR\",\"elevation-7\":\"VehicleGpsFiltersScreen_elevation-7__qQTvV\",\"elevation-8\":\"VehicleGpsFiltersScreen_elevation-8__19RlJ\",\"elevation-9\":\"VehicleGpsFiltersScreen_elevation-9__2A9V8\",\"elevation-10\":\"VehicleGpsFiltersScreen_elevation-10__1miPp\",\"elevation-11\":\"VehicleGpsFiltersScreen_elevation-11__Sdhq2\",\"elevation-12\":\"VehicleGpsFiltersScreen_elevation-12__3I9x3\",\"elevation-13\":\"VehicleGpsFiltersScreen_elevation-13__3xvx9\",\"elevation-14\":\"VehicleGpsFiltersScreen_elevation-14__12lpe\",\"elevation-15\":\"VehicleGpsFiltersScreen_elevation-15__UiPfv\",\"elevation-16\":\"VehicleGpsFiltersScreen_elevation-16__1IwWY\",\"elevation-17\":\"VehicleGpsFiltersScreen_elevation-17__15ebm\",\"elevation-18\":\"VehicleGpsFiltersScreen_elevation-18__4SqPA\",\"elevation-19\":\"VehicleGpsFiltersScreen_elevation-19__3RSB_\",\"elevation-20\":\"VehicleGpsFiltersScreen_elevation-20__3sWOF\",\"elevation-21\":\"VehicleGpsFiltersScreen_elevation-21__JTo1s\",\"elevation-22\":\"VehicleGpsFiltersScreen_elevation-22__3qizh\",\"elevation-23\":\"VehicleGpsFiltersScreen_elevation-23__2dzcz\",\"elevation-24\":\"VehicleGpsFiltersScreen_elevation-24__3INwm\",\"bold\":\"VehicleGpsFiltersScreen_bold__SVqYX\",\"formContent\":\"VehicleGpsFiltersScreen_formContent__5FO4l\",\"buttonsFooter\":\"VehicleGpsFiltersScreen_buttonsFooter__39FMC\",\"useContractStatus\":\"VehicleGpsFiltersScreen_useContractStatus__2J4fm\",\"placeholder\":\"VehicleGpsFiltersScreen_placeholder__3THhC\",\"labelContainer\":\"VehicleGpsFiltersScreen_labelContainer__2I13b\",\"selected\":\"VehicleGpsFiltersScreen_selected__mm4xj\",\"notSelected\":\"VehicleGpsFiltersScreen_notSelected__3VBKN\",\"labelContent\":\"VehicleGpsFiltersScreen_labelContent__3o-pE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Input_elevation-1__2tgnK\",\"elevation-2\":\"Input_elevation-2__1BtaC\",\"elevation-3\":\"Input_elevation-3__2G38n\",\"elevation-4\":\"Input_elevation-4__2uZb8\",\"elevation-5\":\"Input_elevation-5__1bqTm\",\"elevation-6\":\"Input_elevation-6__3bvro\",\"elevation-7\":\"Input_elevation-7__a-jiT\",\"elevation-8\":\"Input_elevation-8__3a58B\",\"elevation-9\":\"Input_elevation-9__3ZHP9\",\"elevation-10\":\"Input_elevation-10__2XHQ7\",\"elevation-11\":\"Input_elevation-11__24luE\",\"elevation-12\":\"Input_elevation-12__Vpc_C\",\"elevation-13\":\"Input_elevation-13__1X_Cr\",\"elevation-14\":\"Input_elevation-14__1O8gh\",\"elevation-15\":\"Input_elevation-15__2CMx0\",\"elevation-16\":\"Input_elevation-16__Kz6kk\",\"elevation-17\":\"Input_elevation-17__15tDh\",\"elevation-18\":\"Input_elevation-18__3M-Jr\",\"elevation-19\":\"Input_elevation-19__2InPK\",\"elevation-20\":\"Input_elevation-20__1o-2g\",\"elevation-21\":\"Input_elevation-21__F5rrk\",\"elevation-22\":\"Input_elevation-22__jDSI4\",\"elevation-23\":\"Input_elevation-23__ZdThU\",\"elevation-24\":\"Input_elevation-24__1oC1b\",\"input\":\"Input_input__3QQIA\",\"placeholder\":\"Input_placeholder__2V6Wp\",\"inputWithIcon\":\"Input_inputWithIcon__1MO21\",\"default\":\"Input_default__1lZhQ\",\"login\":\"Input_login__1KyP-\",\"disabled\":\"Input_disabled__1U7FM\",\"maxLength\":\"Input_maxLength__2_ynz\",\"iconInput\":\"Input_iconInput__1RYc6\",\"formLine\":\"Input_formLine__1M9XB\",\"textArea\":\"Input_textArea__3YRwj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CounterBox_elevation-1__2lO9K\",\"elevation-2\":\"CounterBox_elevation-2__1hF8H\",\"elevation-3\":\"CounterBox_elevation-3__24hGF\",\"elevation-4\":\"CounterBox_elevation-4__UpE2k\",\"elevation-5\":\"CounterBox_elevation-5__OMG4s\",\"elevation-6\":\"CounterBox_elevation-6__oTW-4\",\"elevation-7\":\"CounterBox_elevation-7__3cGbJ\",\"elevation-8\":\"CounterBox_elevation-8__30mkm\",\"elevation-9\":\"CounterBox_elevation-9__2AN7N\",\"elevation-10\":\"CounterBox_elevation-10__l-JO8\",\"elevation-11\":\"CounterBox_elevation-11__zwl8k\",\"elevation-12\":\"CounterBox_elevation-12__3pYIl\",\"elevation-13\":\"CounterBox_elevation-13__Srw4j\",\"elevation-14\":\"CounterBox_elevation-14__qOZ1v\",\"elevation-15\":\"CounterBox_elevation-15__1yFT-\",\"elevation-16\":\"CounterBox_elevation-16__2I5mr\",\"elevation-17\":\"CounterBox_elevation-17__3xQ2q\",\"elevation-18\":\"CounterBox_elevation-18__3d5kC\",\"elevation-19\":\"CounterBox_elevation-19__iKG_I\",\"elevation-20\":\"CounterBox_elevation-20__1yAv6\",\"elevation-21\":\"CounterBox_elevation-21__2rHxb\",\"elevation-22\":\"CounterBox_elevation-22__3VaN8\",\"elevation-23\":\"CounterBox_elevation-23__ZMxd5\",\"elevation-24\":\"CounterBox_elevation-24__1IJK8\",\"boxCounterContainer\":\"CounterBox_boxCounterContainer__1xobW\",\"col4\":\"CounterBox_col4__3SuZK\",\"boxCounterContent\":\"CounterBox_boxCounterContent__1sHvY\",\"img\":\"CounterBox_img__3ZIwJ\",\"labelCounterContainer\":\"CounterBox_labelCounterContainer__1TxKS\",\"spanLabel\":\"CounterBox_spanLabel__1iR40\",\"spanMoreWidth\":\"CounterBox_spanMoreWidth__1xo1h\",\"spanSubLabel\":\"CounterBox_spanSubLabel__CgozV\",\"spanCounter\":\"CounterBox_spanCounter__1HmFm\",\"spanSuffixCustomize\":\"CounterBox_spanSuffixCustomize__2-qNi\",\"countersContainer\":\"CounterBox_countersContainer__1pQWZ\",\"counterBadge\":\"CounterBox_counterBadge__CMaq9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FileSelector_elevation-1__1HiN8\",\"elevation-2\":\"FileSelector_elevation-2__3rt5K\",\"elevation-3\":\"FileSelector_elevation-3__drX7X\",\"elevation-4\":\"FileSelector_elevation-4__1xKqk\",\"elevation-5\":\"FileSelector_elevation-5__WLrAo\",\"elevation-6\":\"FileSelector_elevation-6__1cYeO\",\"elevation-7\":\"FileSelector_elevation-7__MzK1X\",\"elevation-8\":\"FileSelector_elevation-8__1rwMC\",\"elevation-9\":\"FileSelector_elevation-9__3gfCr\",\"elevation-10\":\"FileSelector_elevation-10__1tTG_\",\"elevation-11\":\"FileSelector_elevation-11__-4Rox\",\"elevation-12\":\"FileSelector_elevation-12__3K01G\",\"elevation-13\":\"FileSelector_elevation-13__2EMAL\",\"elevation-14\":\"FileSelector_elevation-14__23Ut5\",\"elevation-15\":\"FileSelector_elevation-15__2199N\",\"elevation-16\":\"FileSelector_elevation-16__1F_RD\",\"elevation-17\":\"FileSelector_elevation-17__2qtba\",\"elevation-18\":\"FileSelector_elevation-18__2UkCP\",\"elevation-19\":\"FileSelector_elevation-19__2lc7M\",\"elevation-20\":\"FileSelector_elevation-20__3m3t5\",\"elevation-21\":\"FileSelector_elevation-21__euy-k\",\"elevation-22\":\"FileSelector_elevation-22__18ZYl\",\"elevation-23\":\"FileSelector_elevation-23__2qfUr\",\"elevation-24\":\"FileSelector_elevation-24__8Dwo5\",\"filesList\":\"FileSelector_filesList__2eYJL\",\"addButton\":\"FileSelector_addButton__wHt_b\",\"fileButton\":\"FileSelector_fileButton__1DmY3\",\"removeIcon\":\"FileSelector_removeIcon__jjTQn\",\"withoutFile\":\"FileSelector_withoutFile__3vBN-\",\"containerSmallButton\":\"FileSelector_containerSmallButton__1ZLcp\",\"icon\":\"FileSelector_icon__3aSno\",\"inline\":\"FileSelector_inline__22jru\",\"inLineButton\":\"FileSelector_inLineButton__3uK3H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AccidentFiltersScreen_elevation-1__oWQcr\",\"elevation-2\":\"AccidentFiltersScreen_elevation-2__2DJ4p\",\"elevation-3\":\"AccidentFiltersScreen_elevation-3__3y18u\",\"elevation-4\":\"AccidentFiltersScreen_elevation-4__3Ji7q\",\"elevation-5\":\"AccidentFiltersScreen_elevation-5__2LHoc\",\"elevation-6\":\"AccidentFiltersScreen_elevation-6__P9OfM\",\"elevation-7\":\"AccidentFiltersScreen_elevation-7__2RzKk\",\"elevation-8\":\"AccidentFiltersScreen_elevation-8__DFECu\",\"elevation-9\":\"AccidentFiltersScreen_elevation-9__3OdlJ\",\"elevation-10\":\"AccidentFiltersScreen_elevation-10__27-td\",\"elevation-11\":\"AccidentFiltersScreen_elevation-11__Yub9f\",\"elevation-12\":\"AccidentFiltersScreen_elevation-12__26V4A\",\"elevation-13\":\"AccidentFiltersScreen_elevation-13__3LB7j\",\"elevation-14\":\"AccidentFiltersScreen_elevation-14__3Isvx\",\"elevation-15\":\"AccidentFiltersScreen_elevation-15__Vo9zf\",\"elevation-16\":\"AccidentFiltersScreen_elevation-16__L1_A2\",\"elevation-17\":\"AccidentFiltersScreen_elevation-17__1VmuB\",\"elevation-18\":\"AccidentFiltersScreen_elevation-18__3ufzZ\",\"elevation-19\":\"AccidentFiltersScreen_elevation-19___Xt0q\",\"elevation-20\":\"AccidentFiltersScreen_elevation-20__iGMXS\",\"elevation-21\":\"AccidentFiltersScreen_elevation-21__XI7eO\",\"elevation-22\":\"AccidentFiltersScreen_elevation-22__2xXcX\",\"elevation-23\":\"AccidentFiltersScreen_elevation-23__3VceX\",\"elevation-24\":\"AccidentFiltersScreen_elevation-24__2cCmB\",\"bold\":\"AccidentFiltersScreen_bold__3ZqT4\",\"formContent\":\"AccidentFiltersScreen_formContent__2GVWZ\",\"buttonsFooter\":\"AccidentFiltersScreen_buttonsFooter__XsuC7\",\"dateRangeCustom\":\"AccidentFiltersScreen_dateRangeCustom__3CEr_\",\"groupSpinner\":\"AccidentFiltersScreen_groupSpinner__1V9WF\",\"spinner\":\"AccidentFiltersScreen_spinner__92vxs\",\"placeholder\":\"AccidentFiltersScreen_placeholder__1X9NI\",\"labelSpinner\":\"AccidentFiltersScreen_labelSpinner__7tgT9\",\"selected\":\"AccidentFiltersScreen_selected__23Iqb\",\"notSelected\":\"AccidentFiltersScreen_notSelected__3YSAI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"PlanFormItem_elevation-1__S59rp\",\"elevation-2\":\"PlanFormItem_elevation-2__tlqbj\",\"elevation-3\":\"PlanFormItem_elevation-3__2z5HZ\",\"elevation-4\":\"PlanFormItem_elevation-4__1RLvf\",\"elevation-5\":\"PlanFormItem_elevation-5__3WQnj\",\"elevation-6\":\"PlanFormItem_elevation-6__3T8GM\",\"elevation-7\":\"PlanFormItem_elevation-7__1qkli\",\"elevation-8\":\"PlanFormItem_elevation-8__2G6gT\",\"elevation-9\":\"PlanFormItem_elevation-9__1jl5r\",\"elevation-10\":\"PlanFormItem_elevation-10__3KbBm\",\"elevation-11\":\"PlanFormItem_elevation-11__2t2dZ\",\"elevation-12\":\"PlanFormItem_elevation-12__2Wv_i\",\"elevation-13\":\"PlanFormItem_elevation-13__1xJvf\",\"elevation-14\":\"PlanFormItem_elevation-14__3QMGw\",\"elevation-15\":\"PlanFormItem_elevation-15__2fnGU\",\"elevation-16\":\"PlanFormItem_elevation-16__3fr_u\",\"elevation-17\":\"PlanFormItem_elevation-17__3tZEe\",\"elevation-18\":\"PlanFormItem_elevation-18__13mWO\",\"elevation-19\":\"PlanFormItem_elevation-19__3x8n-\",\"elevation-20\":\"PlanFormItem_elevation-20__3hX4A\",\"elevation-21\":\"PlanFormItem_elevation-21__2M6rx\",\"elevation-22\":\"PlanFormItem_elevation-22__2UYAS\",\"elevation-23\":\"PlanFormItem_elevation-23__Yn_1B\",\"elevation-24\":\"PlanFormItem_elevation-24__3toth\",\"removeButton\":\"PlanFormItem_removeButton__3o5T6\",\"removeIcon\":\"PlanFormItem_removeIcon__Cv7SI\",\"light\":\"PlanFormItem_light__1vghP\",\"break\":\"PlanFormItem_break__3NSyM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesScreen_elevation-1__14kKF\",\"elevation-2\":\"VehiclesScreen_elevation-2__3Zk-r\",\"elevation-3\":\"VehiclesScreen_elevation-3__2UhWk\",\"elevation-4\":\"VehiclesScreen_elevation-4__3-XG6\",\"elevation-5\":\"VehiclesScreen_elevation-5__1IuVY\",\"elevation-6\":\"VehiclesScreen_elevation-6__1ix6M\",\"elevation-7\":\"VehiclesScreen_elevation-7__EjuQy\",\"elevation-8\":\"VehiclesScreen_elevation-8__2F8np\",\"elevation-9\":\"VehiclesScreen_elevation-9__2B6SG\",\"elevation-10\":\"VehiclesScreen_elevation-10__2yX4G\",\"elevation-11\":\"VehiclesScreen_elevation-11__1KBEl\",\"elevation-12\":\"VehiclesScreen_elevation-12__tGkoR\",\"elevation-13\":\"VehiclesScreen_elevation-13__1XrsS\",\"elevation-14\":\"VehiclesScreen_elevation-14__BD56i\",\"elevation-15\":\"VehiclesScreen_elevation-15__2f5cx\",\"elevation-16\":\"VehiclesScreen_elevation-16__3-kH3\",\"elevation-17\":\"VehiclesScreen_elevation-17__2F0xQ\",\"elevation-18\":\"VehiclesScreen_elevation-18__2IA7g\",\"elevation-19\":\"VehiclesScreen_elevation-19__JEg4J\",\"elevation-20\":\"VehiclesScreen_elevation-20__oxu6o\",\"elevation-21\":\"VehiclesScreen_elevation-21__19hQ3\",\"elevation-22\":\"VehiclesScreen_elevation-22__2m_LZ\",\"elevation-23\":\"VehiclesScreen_elevation-23__20f-h\",\"elevation-24\":\"VehiclesScreen_elevation-24__RdjoT\",\"filtersPopoverContainer\":\"VehiclesScreen_filtersPopoverContainer__3LRlF\",\"counterList\":\"VehiclesScreen_counterList__2yM4G\",\"counterNumber\":\"VehiclesScreen_counterNumber__p75jD\",\"containerCards\":\"VehiclesScreen_containerCards__i974o\",\"fontBold\":\"VehiclesScreen_fontBold__1r9xE\",\"inputSearchContainerCustomization\":\"VehiclesScreen_inputSearchContainerCustomization__iZ5vY\",\"emptyBorder\":\"VehiclesScreen_emptyBorder__rOG66\",\"importIcon\":\"VehiclesScreen_importIcon__Mfnnv\",\"buttonAdd\":\"VehiclesScreen_buttonAdd__p5uhT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Button_elevation-1__1NByH\",\"elevation-2\":\"Button_elevation-2__2GDCI\",\"elevation-3\":\"Button_elevation-3__YDTED\",\"elevation-4\":\"Button_elevation-4__mYK3j\",\"elevation-5\":\"Button_elevation-5__1-m8V\",\"elevation-6\":\"Button_elevation-6__3lQhd\",\"elevation-7\":\"Button_elevation-7__1UJgy\",\"elevation-8\":\"Button_elevation-8__2cL_s\",\"elevation-9\":\"Button_elevation-9___tH27\",\"elevation-10\":\"Button_elevation-10__28a2Z\",\"elevation-11\":\"Button_elevation-11__1ySk-\",\"elevation-12\":\"Button_elevation-12__27qXS\",\"elevation-13\":\"Button_elevation-13__26uuY\",\"elevation-14\":\"Button_elevation-14__1BrlD\",\"elevation-15\":\"Button_elevation-15__3vT8M\",\"elevation-16\":\"Button_elevation-16__3-PF3\",\"elevation-17\":\"Button_elevation-17__1I2hK\",\"elevation-18\":\"Button_elevation-18__38oXh\",\"elevation-19\":\"Button_elevation-19__ve6nw\",\"elevation-20\":\"Button_elevation-20__1ahD4\",\"elevation-21\":\"Button_elevation-21__1Wl-I\",\"elevation-22\":\"Button_elevation-22__2glf6\",\"elevation-23\":\"Button_elevation-23__3jxcz\",\"elevation-24\":\"Button_elevation-24__1fjDC\",\"button\":\"Button_button__1nO-t\",\"bw\":\"Button_bw__1pa2g\",\"disabled\":\"Button_disabled__1ffzx\",\"primary\":\"Button_primary__1oz59\",\"sizeNormal\":\"Button_sizeNormal__dakt2\",\"sizeSmall\":\"Button_sizeSmall__2zqTi\",\"sizeExtraSmall\":\"Button_sizeExtraSmall__rogsb\",\"buttonLoadingOverlay\":\"Button_buttonLoadingOverlay__57-WS\",\"spinner\":\"Button_spinner__2ApZ8\",\"rotation\":\"Button_rotation__3aWpt\",\"buttonIcon\":\"Button_buttonIcon__2ZXp0\",\"primaryAlt\":\"Button_primaryAlt__hwB5t\",\"danger\":\"Button_danger__3xLi2\",\"success\":\"Button_success__21K04\",\"secondary\":\"Button_secondary__25aAD\",\"popover\":\"Button_popover__1MKWQ\",\"secondaryDanger\":\"Button_secondaryDanger__1oxQu\",\"white\":\"Button_white__21Jue\",\"secondary-success\":\"Button_secondary-success__3HWhv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"EcoDriving_elevation-1__1xWi7\",\"elevation-2\":\"EcoDriving_elevation-2__1Qq_z\",\"elevation-3\":\"EcoDriving_elevation-3__1aJGt\",\"elevation-4\":\"EcoDriving_elevation-4__1051G\",\"elevation-5\":\"EcoDriving_elevation-5__1loLr\",\"elevation-6\":\"EcoDriving_elevation-6__MaMTV\",\"elevation-7\":\"EcoDriving_elevation-7__2cyrO\",\"elevation-8\":\"EcoDriving_elevation-8__2Pxv8\",\"elevation-9\":\"EcoDriving_elevation-9__3AhVJ\",\"elevation-10\":\"EcoDriving_elevation-10__27adC\",\"elevation-11\":\"EcoDriving_elevation-11__2ZGmM\",\"elevation-12\":\"EcoDriving_elevation-12__11g-C\",\"elevation-13\":\"EcoDriving_elevation-13__1aGn5\",\"elevation-14\":\"EcoDriving_elevation-14__3kov1\",\"elevation-15\":\"EcoDriving_elevation-15__1na_2\",\"elevation-16\":\"EcoDriving_elevation-16__CVAH1\",\"elevation-17\":\"EcoDriving_elevation-17__3awH_\",\"elevation-18\":\"EcoDriving_elevation-18__3Ml7t\",\"elevation-19\":\"EcoDriving_elevation-19__6U1jU\",\"elevation-20\":\"EcoDriving_elevation-20__MWHFw\",\"elevation-21\":\"EcoDriving_elevation-21__2YxZd\",\"elevation-22\":\"EcoDriving_elevation-22__3Uq1j\",\"elevation-23\":\"EcoDriving_elevation-23___xTtR\",\"elevation-24\":\"EcoDriving_elevation-24__o7alj\",\"eco\":\"EcoDriving_eco__3ggCe\",\"eco_success\":\"EcoDriving_eco_success__3j97R\",\"eco_danger\":\"EcoDriving_eco_danger__3pb-y\",\"eco_warning\":\"EcoDriving_eco_warning__FEZ5o\",\"table\":\"EcoDriving_table__2DaLM\",\"row_eco_success\":\"EcoDriving_row_eco_success__3YsdF\",\"row_eco_warning\":\"EcoDriving_row_eco_warning__rr6Ko\",\"row_eco_danger\":\"EcoDriving_row_eco_danger__3ez1u\",\"tooltip\":\"EcoDriving_tooltip__2Spid\",\"p08\":\"EcoDriving_p08__IUEFT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MarkerPopup_elevation-1__WUR1X\",\"elevation-2\":\"MarkerPopup_elevation-2__1zCw-\",\"elevation-3\":\"MarkerPopup_elevation-3__2Fcq7\",\"elevation-4\":\"MarkerPopup_elevation-4__v_znj\",\"elevation-5\":\"MarkerPopup_elevation-5__1Vhkb\",\"elevation-6\":\"MarkerPopup_elevation-6__eH-wn\",\"elevation-7\":\"MarkerPopup_elevation-7__38DUR\",\"elevation-8\":\"MarkerPopup_elevation-8__111bK\",\"elevation-9\":\"MarkerPopup_elevation-9__2VfXX\",\"elevation-10\":\"MarkerPopup_elevation-10__33PPR\",\"elevation-11\":\"MarkerPopup_elevation-11__mOXa0\",\"elevation-12\":\"MarkerPopup_elevation-12__1ji-l\",\"elevation-13\":\"MarkerPopup_elevation-13__23-kG\",\"elevation-14\":\"MarkerPopup_elevation-14__3jddm\",\"elevation-15\":\"MarkerPopup_elevation-15__1akph\",\"elevation-16\":\"MarkerPopup_elevation-16__yqzrD\",\"elevation-17\":\"MarkerPopup_elevation-17__1Lcj_\",\"elevation-18\":\"MarkerPopup_elevation-18__3pxEY\",\"elevation-19\":\"MarkerPopup_elevation-19__2rJMi\",\"elevation-20\":\"MarkerPopup_elevation-20__kZTC2\",\"elevation-21\":\"MarkerPopup_elevation-21__1orjb\",\"elevation-22\":\"MarkerPopup_elevation-22__2jQCD\",\"elevation-23\":\"MarkerPopup_elevation-23__3wwgg\",\"elevation-24\":\"MarkerPopup_elevation-24__1C4n8\",\"container\":\"MarkerPopup_container__XV8w-\",\"item\":\"MarkerPopup_item__3xEvn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleModelDetails_elevation-1__IdxEJ\",\"elevation-2\":\"VehicleModelDetails_elevation-2__AiqMd\",\"elevation-3\":\"VehicleModelDetails_elevation-3__2o-B1\",\"elevation-4\":\"VehicleModelDetails_elevation-4__L0yTp\",\"elevation-5\":\"VehicleModelDetails_elevation-5__1nEni\",\"elevation-6\":\"VehicleModelDetails_elevation-6__2w2I5\",\"elevation-7\":\"VehicleModelDetails_elevation-7__11LxL\",\"elevation-8\":\"VehicleModelDetails_elevation-8__2eeht\",\"elevation-9\":\"VehicleModelDetails_elevation-9__2qXVT\",\"elevation-10\":\"VehicleModelDetails_elevation-10__2mn-4\",\"elevation-11\":\"VehicleModelDetails_elevation-11__2qlZ8\",\"elevation-12\":\"VehicleModelDetails_elevation-12__PYt7l\",\"elevation-13\":\"VehicleModelDetails_elevation-13__2zvu0\",\"elevation-14\":\"VehicleModelDetails_elevation-14__1r8AL\",\"elevation-15\":\"VehicleModelDetails_elevation-15__3kIsl\",\"elevation-16\":\"VehicleModelDetails_elevation-16__3Gxyk\",\"elevation-17\":\"VehicleModelDetails_elevation-17___z17l\",\"elevation-18\":\"VehicleModelDetails_elevation-18__Khmal\",\"elevation-19\":\"VehicleModelDetails_elevation-19__gW6tb\",\"elevation-20\":\"VehicleModelDetails_elevation-20__eze0m\",\"elevation-21\":\"VehicleModelDetails_elevation-21__2Zb3O\",\"elevation-22\":\"VehicleModelDetails_elevation-22__3l1DB\",\"elevation-23\":\"VehicleModelDetails_elevation-23__2LtmT\",\"elevation-24\":\"VehicleModelDetails_elevation-24__1kTEU\",\"pageNameContainer\":\"VehicleModelDetails_pageNameContainer__1W22H\",\"pageNameContent\":\"VehicleModelDetails_pageNameContent__31odY\",\"pageNameContentImage\":\"VehicleModelDetails_pageNameContentImage__wajZJ\",\"pageNameContentText\":\"VehicleModelDetails_pageNameContentText__12Szq\",\"form\":\"VehicleModelDetails_form__3eakB\",\"label\":\"VehicleModelDetails_label__1Y_gV\",\"buttonContainer\":\"VehicleModelDetails_buttonContainer__3mUwQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"primaryLight\":\"#16e0cc\",\"primaryLight2\":\"#16ddcb\",\"primaryDark10\":\"#e7f2f5\",\"primaryDark\":\"#1781a1\",\"primaryDarkOpacity\":\"#e0ebee\",\"grey\":\"#f7f7f7\",\"alto\":\"#d3d3d3\",\"gallery\":\"#eaeaea\",\"warning\":\"#e2b434\",\"danger10\":\"#fbedef\",\"danger\":\"#dc4c4c\",\"lightblack\":\"#404040\",\"gray\":\"#bebebe\",\"gray3\":\"#eaeaea\",\"gray5\":\"#d3d3d3\",\"gray16\":\"#d9d9d9\",\"gray17\":\"#e4e4e4\",\"success\":\"#16ccc3\",\"black\":\"#000\",\"white\":\"#fff\",\"alabaster\":\"#f8f8f8\",\"toastedYellow\":\"#d4872f\",\"mercury\":\"#e8e8e8\",\"athensGray\":\"#f4f6f8\",\"tundora\":\"#464646\",\"catskillWhite\":\"#f3f6f9\",\"frenchGray\":\"#b5b5c3\",\"lightGrayishBlue\":\"#e5eff6\",\"linkWater\":\"#f1f6fc\",\"water\":\"#d8f6f3\",\"botticelliapprox\":\"#d0dde6\",\"solitude\":\"#ebf7ff\",\"whisper\":\"#eee\",\"skyBlue\":\"#63c9ef\",\"veryLightGrey\":\"#cbcbcb\",\"defaultGreen\":\"#16ccc3\",\"lightDark\":\"#3f4254\",\"polar\":\"#e7faf9\",\"waitingStatus\":\"#dc4c64\",\"doneStatus\":\"#16ccc3\",\"webOrange\":\"#fa0\",\"alabasterSolid\":\"#fafafa\",\"parsianRed\":\"#d13232\",\"grayAmerica\":\"#bbb\",\"greenAmerica\":\"#56cf76\",\"yellowAmerica\":\"#eaa32c\",\"greenDarker\":\"#16bfbd\",\"buttercup\":\"#f1be1747\",\"pinIgnitionOn\":\"#16ccc3\",\"pinIgnitionOff\":\"#f08000\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CurrentLocation_elevation-1__27NIc\",\"elevation-2\":\"CurrentLocation_elevation-2__306Is\",\"elevation-3\":\"CurrentLocation_elevation-3__3jGMt\",\"elevation-4\":\"CurrentLocation_elevation-4__oVIki\",\"elevation-5\":\"CurrentLocation_elevation-5__2DnrF\",\"elevation-6\":\"CurrentLocation_elevation-6__19hL-\",\"elevation-7\":\"CurrentLocation_elevation-7__1RBfW\",\"elevation-8\":\"CurrentLocation_elevation-8__3QcuG\",\"elevation-9\":\"CurrentLocation_elevation-9__1dwX_\",\"elevation-10\":\"CurrentLocation_elevation-10__2gip3\",\"elevation-11\":\"CurrentLocation_elevation-11__33cRY\",\"elevation-12\":\"CurrentLocation_elevation-12__26yn3\",\"elevation-13\":\"CurrentLocation_elevation-13__3R9tT\",\"elevation-14\":\"CurrentLocation_elevation-14__15uwG\",\"elevation-15\":\"CurrentLocation_elevation-15__3c3uk\",\"elevation-16\":\"CurrentLocation_elevation-16__2Cg6n\",\"elevation-17\":\"CurrentLocation_elevation-17__7MNtl\",\"elevation-18\":\"CurrentLocation_elevation-18__1up4j\",\"elevation-19\":\"CurrentLocation_elevation-19__FSApL\",\"elevation-20\":\"CurrentLocation_elevation-20__3jJS-\",\"elevation-21\":\"CurrentLocation_elevation-21__2nj_4\",\"elevation-22\":\"CurrentLocation_elevation-22__3zfT0\",\"elevation-23\":\"CurrentLocation_elevation-23__3KlTm\",\"elevation-24\":\"CurrentLocation_elevation-24__1LiUd\",\"container\":\"CurrentLocation_container__1321E\",\"containerOn\":\"CurrentLocation_containerOn__3Htv4\",\"info\":\"CurrentLocation_info__3lehd\",\"pin\":\"CurrentLocation_pin__oijq8\",\"containerOff\":\"CurrentLocation_containerOff__1z2XG\",\"content\":\"CurrentLocation_content__1Lumu\",\"address\":\"CurrentLocation_address__3c5xY\",\"labelAddress\":\"CurrentLocation_labelAddress__2YhTi\",\"small\":\"CurrentLocation_small__PQP_0\",\"linkIcon\":\"CurrentLocation_linkIcon__14v0P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"SuppliersList_elevation-1__2r3ni\",\"elevation-2\":\"SuppliersList_elevation-2__3EB49\",\"elevation-3\":\"SuppliersList_elevation-3__2Rpr-\",\"elevation-4\":\"SuppliersList_elevation-4__1q4Gn\",\"elevation-5\":\"SuppliersList_elevation-5__2ZtI3\",\"elevation-6\":\"SuppliersList_elevation-6__3j1_9\",\"elevation-7\":\"SuppliersList_elevation-7__1LIWj\",\"elevation-8\":\"SuppliersList_elevation-8__11Ikl\",\"elevation-9\":\"SuppliersList_elevation-9__2uKr2\",\"elevation-10\":\"SuppliersList_elevation-10__2La3W\",\"elevation-11\":\"SuppliersList_elevation-11__3a2-m\",\"elevation-12\":\"SuppliersList_elevation-12__3etZc\",\"elevation-13\":\"SuppliersList_elevation-13__2kBFo\",\"elevation-14\":\"SuppliersList_elevation-14__1jibx\",\"elevation-15\":\"SuppliersList_elevation-15__2_4XR\",\"elevation-16\":\"SuppliersList_elevation-16__2T7Lb\",\"elevation-17\":\"SuppliersList_elevation-17__1JoHX\",\"elevation-18\":\"SuppliersList_elevation-18__SKDJZ\",\"elevation-19\":\"SuppliersList_elevation-19__nsZ5Z\",\"elevation-20\":\"SuppliersList_elevation-20__teMGZ\",\"elevation-21\":\"SuppliersList_elevation-21__3bWKY\",\"elevation-22\":\"SuppliersList_elevation-22__2d13Y\",\"elevation-23\":\"SuppliersList_elevation-23__2alRu\",\"elevation-24\":\"SuppliersList_elevation-24__346xj\",\"columnPlate\":\"SuppliersList_columnPlate__22Z6T\",\"columnBrand\":\"SuppliersList_columnBrand__Y45kE\",\"columnSpec\":\"SuppliersList_columnSpec__2QMUu\",\"tabHeader\":\"SuppliersList_tabHeader__3frpo\",\"filtersPopoverContainer\":\"SuppliersList_filtersPopoverContainer__3U6N4\",\"counterList\":\"SuppliersList_counterList__2fBoJ\",\"counterNumber\":\"SuppliersList_counterNumber__2bBmE\",\"rowFlex\":\"SuppliersList_rowFlex__3fcpt\",\"contentImage\":\"SuppliersList_contentImage__2fRJk\",\"img\":\"SuppliersList_img__e8eoz\",\"imageDescCell\":\"SuppliersList_imageDescCell__2fwr9\",\"descCell\":\"SuppliersList_descCell___C0Tl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"TechnicalInformationForm_elevation-1__1NlgN\",\"elevation-2\":\"TechnicalInformationForm_elevation-2__3e_MQ\",\"elevation-3\":\"TechnicalInformationForm_elevation-3__2Ro_O\",\"elevation-4\":\"TechnicalInformationForm_elevation-4__1zmGb\",\"elevation-5\":\"TechnicalInformationForm_elevation-5__1lssf\",\"elevation-6\":\"TechnicalInformationForm_elevation-6__3ofYu\",\"elevation-7\":\"TechnicalInformationForm_elevation-7__2EFjz\",\"elevation-8\":\"TechnicalInformationForm_elevation-8__4Kj4y\",\"elevation-9\":\"TechnicalInformationForm_elevation-9__3eLEN\",\"elevation-10\":\"TechnicalInformationForm_elevation-10__hJBI6\",\"elevation-11\":\"TechnicalInformationForm_elevation-11__1qXCP\",\"elevation-12\":\"TechnicalInformationForm_elevation-12__3MhuO\",\"elevation-13\":\"TechnicalInformationForm_elevation-13__5q5oM\",\"elevation-14\":\"TechnicalInformationForm_elevation-14__2e1-W\",\"elevation-15\":\"TechnicalInformationForm_elevation-15__2_40a\",\"elevation-16\":\"TechnicalInformationForm_elevation-16__1v5hc\",\"elevation-17\":\"TechnicalInformationForm_elevation-17__SPQwL\",\"elevation-18\":\"TechnicalInformationForm_elevation-18__1NWYR\",\"elevation-19\":\"TechnicalInformationForm_elevation-19__2dDiX\",\"elevation-20\":\"TechnicalInformationForm_elevation-20__10l9-\",\"elevation-21\":\"TechnicalInformationForm_elevation-21__1hkNF\",\"elevation-22\":\"TechnicalInformationForm_elevation-22__1Qcp4\",\"elevation-23\":\"TechnicalInformationForm_elevation-23__jGK45\",\"elevation-24\":\"TechnicalInformationForm_elevation-24__2J_Xy\",\"container\":\"TechnicalInformationForm_container__OGjl1\",\"header\":\"TechnicalInformationForm_header__2oTGW\",\"headerText\":\"TechnicalInformationForm_headerText__2HFAV\",\"headerButton\":\"TechnicalInformationForm_headerButton__1469Z\",\"headerButtonIcon\":\"TechnicalInformationForm_headerButtonIcon__VvXkD\",\"content\":\"TechnicalInformationForm_content__2Z59P\",\"noInfoText\":\"TechnicalInformationForm_noInfoText__3oOqN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleFuelForm_elevation-1__3_bEM\",\"elevation-2\":\"VehicleFuelForm_elevation-2__fTfOA\",\"elevation-3\":\"VehicleFuelForm_elevation-3__1mkDn\",\"elevation-4\":\"VehicleFuelForm_elevation-4__3Umo7\",\"elevation-5\":\"VehicleFuelForm_elevation-5__3cofh\",\"elevation-6\":\"VehicleFuelForm_elevation-6__3G-BN\",\"elevation-7\":\"VehicleFuelForm_elevation-7__3dahF\",\"elevation-8\":\"VehicleFuelForm_elevation-8__3-9Cr\",\"elevation-9\":\"VehicleFuelForm_elevation-9__2tSfp\",\"elevation-10\":\"VehicleFuelForm_elevation-10__27acL\",\"elevation-11\":\"VehicleFuelForm_elevation-11__2Mb4u\",\"elevation-12\":\"VehicleFuelForm_elevation-12__3FIhc\",\"elevation-13\":\"VehicleFuelForm_elevation-13__1p0KJ\",\"elevation-14\":\"VehicleFuelForm_elevation-14__2deSj\",\"elevation-15\":\"VehicleFuelForm_elevation-15__YUWvV\",\"elevation-16\":\"VehicleFuelForm_elevation-16__QxvaQ\",\"elevation-17\":\"VehicleFuelForm_elevation-17__2L5Ms\",\"elevation-18\":\"VehicleFuelForm_elevation-18___8Zgq\",\"elevation-19\":\"VehicleFuelForm_elevation-19__V9N_g\",\"elevation-20\":\"VehicleFuelForm_elevation-20__255fq\",\"elevation-21\":\"VehicleFuelForm_elevation-21__357Dt\",\"elevation-22\":\"VehicleFuelForm_elevation-22__3Ub7e\",\"elevation-23\":\"VehicleFuelForm_elevation-23__1Ifl1\",\"elevation-24\":\"VehicleFuelForm_elevation-24__2XjZq\",\"container\":\"VehicleFuelForm_container__3wt0i\",\"header\":\"VehicleFuelForm_header__1O7p5\",\"headerText\":\"VehicleFuelForm_headerText__3YuTo\",\"headerButton\":\"VehicleFuelForm_headerButton__3LO9T\",\"headerButtonIcon\":\"VehicleFuelForm_headerButtonIcon__2_EkD\",\"content\":\"VehicleFuelForm_content__1dg6p\",\"noInfoText\":\"VehicleFuelForm_noInfoText__1Eo14\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MaintenancesFiltersScreen_elevation-1__25smm\",\"elevation-2\":\"MaintenancesFiltersScreen_elevation-2__LBLj9\",\"elevation-3\":\"MaintenancesFiltersScreen_elevation-3__17IVX\",\"elevation-4\":\"MaintenancesFiltersScreen_elevation-4__4rk4d\",\"elevation-5\":\"MaintenancesFiltersScreen_elevation-5__1g87i\",\"elevation-6\":\"MaintenancesFiltersScreen_elevation-6__2EUpp\",\"elevation-7\":\"MaintenancesFiltersScreen_elevation-7__1CoKl\",\"elevation-8\":\"MaintenancesFiltersScreen_elevation-8__ZttJP\",\"elevation-9\":\"MaintenancesFiltersScreen_elevation-9__3fhem\",\"elevation-10\":\"MaintenancesFiltersScreen_elevation-10__21382\",\"elevation-11\":\"MaintenancesFiltersScreen_elevation-11__1ZO4g\",\"elevation-12\":\"MaintenancesFiltersScreen_elevation-12__Qtnfa\",\"elevation-13\":\"MaintenancesFiltersScreen_elevation-13__19Zam\",\"elevation-14\":\"MaintenancesFiltersScreen_elevation-14__2simG\",\"elevation-15\":\"MaintenancesFiltersScreen_elevation-15__3VBjj\",\"elevation-16\":\"MaintenancesFiltersScreen_elevation-16__17rpx\",\"elevation-17\":\"MaintenancesFiltersScreen_elevation-17__2XmDo\",\"elevation-18\":\"MaintenancesFiltersScreen_elevation-18__1xIEH\",\"elevation-19\":\"MaintenancesFiltersScreen_elevation-19__1c-zm\",\"elevation-20\":\"MaintenancesFiltersScreen_elevation-20__1hkQR\",\"elevation-21\":\"MaintenancesFiltersScreen_elevation-21__O_Oul\",\"elevation-22\":\"MaintenancesFiltersScreen_elevation-22__ib6iV\",\"elevation-23\":\"MaintenancesFiltersScreen_elevation-23__1OWUM\",\"elevation-24\":\"MaintenancesFiltersScreen_elevation-24__1Bvcw\",\"bold\":\"MaintenancesFiltersScreen_bold__Ba3e5\",\"formContent\":\"MaintenancesFiltersScreen_formContent__3Hxoc\",\"buttonsFooter\":\"MaintenancesFiltersScreen_buttonsFooter__9tNze\",\"dateRangeCustom\":\"MaintenancesFiltersScreen_dateRangeCustom__1IFKS\"};","type EventType = 'loading';\r\n\r\nexport type EventValues = boolean | string;\r\n\r\nexport type EventSubscription = { remove: () => void };\r\n\r\ntype EventCB = (values: EventValues) => void\r\n\r\ntype Event = {\r\n [propName in EventType]?: Array\r\n}\r\n\r\nclass Events {\r\n\r\n private events: Event = {};\r\n\r\n public addListener(eventName: 'loading', cb: (loading: boolean) => void): EventSubscription;\r\n\r\n public addListener(eventName: EventType, cb: any): EventSubscription {\r\n if (!(this.events as any)[eventName]) {\r\n (this.events as any)[eventName] = [];\r\n }\r\n (this.events as any)[eventName].push(cb);\r\n const index: number = (this.events as any)[eventName].length - 1;\r\n return {\r\n remove: () => {\r\n (this.events as any)[eventName].splice(index, 1);\r\n }\r\n };\r\n }\r\n\r\n public emit(eventName: 'loading', loading: boolean): void;\r\n\r\n public emit(eventName: EventType, values: EventValues): void {\r\n const cbs: Array | undefined = (this.events as any)[eventName];\r\n if (cbs && cbs.length) {\r\n cbs.forEach((cb: EventCB) => {\r\n cb(values);\r\n })\r\n }\r\n }\r\n}\r\nexport default new Events();","import React from 'react';\r\nimport { SpinnerCircular } from 'spinners-react';\r\n\r\nconst LoadingSpinner: React.FunctionComponent = () => {\r\n return ;\r\n}\r\n\r\nexport default LoadingSpinner;\r\n","import React, { PureComponent } from 'react';\r\nimport Events from '../../services/Events';\r\nimport LoadingSpinner from './LoadingSpinner';\r\nimport styles from './LoadingProvider.module.scss';\r\n\r\ntype Props = {\r\n}\r\n\r\ntype State = {\r\n showLoading: boolean;\r\n}\r\n\r\nclass LoadingProvider extends PureComponent {\r\n\r\n state: State = {\r\n showLoading: false\r\n }\r\n \r\n private isComponentMounted = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n Events.addListener('loading', (loading: boolean) => {\r\n if (this.isComponentMounted && this.state.showLoading != loading) {\r\n this.setState({ showLoading: loading });\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.isComponentMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this.isComponentMounted = false;\r\n }\r\n\r\n render() {\r\n if (this.state.showLoading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default LoadingProvider;\r\n","import { removeAccents } from 'Config';\r\nimport dayjs from 'dayjs';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport numbro from 'numbro';\r\n\r\nclass Utils {\r\n\r\n public newGuid(): string {\r\n return uuidv4();\r\n }\r\n\r\n public objectArraybyStringPath(o: any, s: string) {\r\n s = s.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\r\n s = s.replace(/^\\./, ''); // strip a leading dot\r\n const a = s.split('.');\r\n for (let i = 0, n = a.length; i < n; ++i) {\r\n const k = a[i];\r\n if (k in o) {\r\n o = o[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return o;\r\n }\r\n\r\n public getMonthsInRange(startDate: Date, endDate: Date) {\r\n let dStartDate = dayjs(startDate);\r\n const dEndDate = dayjs(endDate);\r\n const result = [];\r\n\r\n while (dStartDate.isBefore(dEndDate) || dStartDate.isSame(dEndDate, 'month')) {\r\n result.push(dStartDate.toDate());\r\n dStartDate = dStartDate.add(1, 'month');\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public getMonthsInDates(dates: Date[]) {\r\n let dStartDate = dayjs(Math.min(...dates.map(x => x.getTime())));\r\n const dEndDate = dayjs(Math.max(...dates.map(x => x.getTime())));\r\n const result = [];\r\n\r\n while (dStartDate.isBefore(dEndDate) || dStartDate.isSame(dEndDate, 'month')) {\r\n result.push(dStartDate.toDate());\r\n dStartDate = dStartDate.add(1, 'month');\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public getYearsInRange(startDate: Date, endDate: Date) {\r\n let dStartDate = dayjs(startDate);\r\n const dEndDate = dayjs(endDate);\r\n const result = [];\r\n\r\n while (dStartDate.isBefore(dEndDate) || dStartDate.isSame(dEndDate, 'year')) {\r\n result.push(dStartDate.toDate());\r\n dStartDate = dStartDate.add(1, 'year');\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public getMonthsInYear(date: Date) {\r\n return new Array(12).fill({}).map((_, i) => (new Date(date.getFullYear(), i, 1, 0, 0, 0, 0)));\r\n }\r\n\r\n public sortAlphabetically(arr: any[], desc?: boolean, field = 'label') {\r\n return arr.sort(function (a, b) {\r\n if (!a[field] || !b[field]) return 0;\r\n if (removeAccents(a[field].toLowerCase()) < removeAccents(b[field].toLowerCase())) { return desc ? 1 : -1; }\r\n if (removeAccents(a[field].toLowerCase()) > removeAccents(b[field].toLowerCase())) { return desc ? -1 : 1; }\r\n return 0;\r\n });\r\n }\r\n\r\n public sortStringsAlphabetically(arr: string[]) {\r\n return arr.sort(function (a, b) {\r\n if (removeAccents(a) < removeAccents(b)) { return -1; }\r\n if (removeAccents(a) > removeAccents(b)) { return 1; }\r\n return 0;\r\n });\r\n }\r\n\r\n public sortAlphabeticallyByKey(arr: T[], key: K) {\r\n return arr.sort((a, b) => {\r\n const aValue = removeAccents(a[key] as any);\r\n const bValue = removeAccents(b[key] as any);\r\n if (aValue < bValue) { return -1; }\r\n if (aValue > bValue) { return 1; }\r\n return 0;\r\n });\r\n }\r\n\r\n public makeid(length: number) {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n for (let i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() *\r\n charactersLength));\r\n }\r\n return result;\r\n }\r\n\r\n public isStringNullOrEmpty(str: string): boolean {\r\n if (!str) {\r\n return true;\r\n }\r\n\r\n return !str.trim();\r\n }\r\n\r\n private formatDatePartValue(value?: number): string {\r\n return `${value ? (value < 10 ? ('0' + value) : value) : '00'}`;\r\n }\r\n\r\n public generateDate(year: number, month: number, day: number, hour?: number, minutes?: number, seconds?: number): Date {\r\n const monthAux = this.formatDatePartValue((month + 1));\r\n const dayAux = this.formatDatePartValue(day);\r\n const hourAux = this.formatDatePartValue(hour);\r\n const minutesAux = this.formatDatePartValue(minutes);\r\n const secondsAux = this.formatDatePartValue(seconds);\r\n const aux = `${year}-${monthAux}-${dayAux}T${hourAux}:${minutesAux}:${secondsAux}.000Z`;\r\n return new Date(aux);\r\n }\r\n\r\n public flatten(list: any | any[]): T[] {\r\n return list.reduce((a: any, b: any) => a.concat(Array.isArray(b) ? this.flatten(b) : b), []);\r\n }\r\n\r\n public formatCurrency(value: number, symbol?: string) {\r\n numbro.languageData().delimiters.thousands = ' ';\r\n numbro.languageData().delimiters.thousandsSize = 3;\r\n numbro.languageData().delimiters.decimal = ',';\r\n\r\n return numbro(value || 0).formatCurrency({\r\n thousandSeparated: true,\r\n mantissa: 2,\r\n // optionalMantissa: true,\r\n currencySymbol: !symbol ? '€' : symbol,\r\n currencyPosition: 'postfix',\r\n spaceSeparatedCurrency: true,\r\n\r\n });\r\n }\r\n\r\n public capitalize(value: string) {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n\r\n\r\n public numberFormatter = (value: number) => {\r\n if (typeof value !== 'number') value = 0.0\r\n const options = {\r\n significantDigits: 2,\r\n thousandsSeparator: ' ',\r\n decimalSeparator: ',',\r\n symbol: '€'\r\n }\r\n\r\n const valueS = value.toFixed(options.significantDigits)\r\n\r\n const [currency, decimal] = valueS.split('.');\r\n\r\n return `${currency.replace(\r\n /\\B(?=(\\d{3})+(?!\\d))/g,\r\n options.thousandsSeparator\r\n )}${decimal !== '00' ? options.decimalSeparator : ''}${decimal !== '00' ? decimal : ''}`\r\n }\r\n\r\n public getDistanceFromLatLonInKm(lat1: number, lon1: number, lat2: number, lon2: number) {\r\n const R = 6371; // Radius of the earth in km\r\n const dLat = this.deg2rad(lat2-lat1);\r\n const dLon = this.deg2rad(lon2-lon1);\r\n const a =\r\n Math.sin(dLat/2) * Math.sin(dLat/2) +\r\n Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *\r\n Math.sin(dLon/2) * Math.sin(dLon/2)\r\n ;\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\r\n const d = R * c; // Distance in km\r\n return d;\r\n }\r\n\r\n private deg2rad(deg: number) {\r\n return deg * (Math.PI/180)\r\n }\r\n\r\n}\r\n\r\nexport default new Utils();\r\n","import Utils from 'common/services/Utils';\r\nimport { RegisterOptions } from 'react-hook-form';\r\n\r\n/**\r\n * Languages\r\n */\r\nexport const DEFAULT_LANGUAGE = 'fr';\r\nexport const DEFAULTNS = 'translations';\r\n\r\n/**\r\n * API\r\n */\r\nexport const API_BASE_URL = process.env.REACT_APP_API_URL;\r\nexport const SERVER_BASE_URL = process.env.REACT_APP_SERVER_URL;\r\n\r\n/**\r\n * Storage\r\n */\r\nexport const STORAGE_KEY = 'cQfTjWnZr4u7x!A%D*G-KaNdRgUkXp2s';\r\nexport const STORAGE = {\r\n CURRENT_LOCALE: 'CURRENT_LOCALE',\r\n AUTH_USER_TOKEN: 'AUTH_USER_TOKEN',\r\n AUTH_USER_PROFILE: 'AUTH_USER_PROFILE',\r\n};\r\n\r\n/**\r\n* GA\r\n*/\r\nexport const GA = process.env.REACT_APP_GA;\r\n\r\n/**\r\n * Logger\r\n */\r\nexport enum LOGGER_MESSAGE_TYPE {\r\n INFO = 1,\r\n ERROR,\r\n}\r\nexport enum LOGGER_LOG_TYPE {\r\n REQUEST,\r\n APP_CRASH,\r\n VEHICLES,\r\n USE_CONTRACTS,\r\n MAINTENANCE_CONTRACTS,\r\n INSURANCE_CONTRACTS,\r\n CONTRACTS,\r\n CHARGES,\r\n IMPORT_CHARGES,\r\n MAINTENANCES,\r\n ACCIDENTS,\r\n DRIVERS,\r\n ALERTS,\r\n VERIFICATIONS,\r\n DASHBOARD,\r\n ALARMS,\r\n VEHICLES_GPS\r\n}\r\nexport const LOGGER_PRINT_LOGS = process.env.REACT_APP_LOGGER_PRINT_LOGS || false;\r\nexport const LOGGER_PRINT_LOGS_LEVEL = LOGGER_MESSAGE_TYPE.INFO;\r\nexport const LOGGER_SEND_LOGS = process.env.REACT_APP_LOGGER_SEND_LOGS || false;\r\nexport const LOGGER_SEND_LOGS_LEVEL = LOGGER_MESSAGE_TYPE.ERROR;\r\nexport const LOGGER_KEYS = process.env.REACT_APP_LOGGER_KEYS ?? '';\r\nexport const LOGGER_URL = process.env.REACT_APP_LOGGER_URL ?? '';\r\n\r\n/**\r\n * DATE FORMAT\r\n */\r\nexport const DATE_FORMAT_DEFAUT = 'DD/MM/YYYY';\r\nexport const DATEPICKER_FORMAT_DEFAULT = 'dd/MM/yyyy';\r\nexport const DATE_TIME_FORMAT_DEFAUT = 'DD/MM/YYYY HH:mm';\r\nexport const DATE_FORMAT_MONTH_YEAR = 'MM/YYYY';\r\nexport const DATE_TIME_FORMAT_DEFAULT = 'DD/MM/YYYY | HH:mm';\r\nexport const DATE_FORMAT_MONTH_TEXT_YEAR = 'MMM/YYYY';\r\nexport const TIME_FORMAT_DEFAULT = 'HH:mm';\r\n\r\n\r\n/**\r\n * NUMBERS\r\n */\r\nexport const NUMBERS_MAX_LENGTH = 14;\r\nexport const NUMBERS_MAX_VALUE = 999999999.99;\r\n\r\n/**\r\n * POLICIES\r\n */\r\nexport const POLICIES = {\r\n SETTINGUP_COMPANIES_READ: 'SETTINGUP_COMPANIES_READ',\r\n SETTINGUP_COMPANIES_WRITE: 'SETTINGUP_COMPANIES_WRITE',\r\n SETTINGUP_MY_COMPANY_READ : 'SETTINGUP_MY_COMPANY_READ',\r\n SETTINGUP_MY_COMPANY_WRITE : 'SETTINGUP_MY_COMPANY_WRITE',\r\n SETTINGUP_USERS_READ: 'SETTINGUP_USERS_READ',\r\n SETTINGUP_USERS_WRITE: 'SETTINGUP_USERS_WRITE',\r\n SETTINGUP_ROLES_READ: 'SETTINGUP_ROLES_READ',\r\n SETTINGUP_ROLES_WRITE: 'SETTINGUP_ROLES_WRITE',\r\n SETTINGUP_RULES_READ: 'SETTINGUP_RULES_READ',\r\n SETTINGUP_RULES_WRITE: 'SETTINGUP_RULES_WRITE',\r\n SETTINGUP_VEHICLES_READ: 'SETTINGUP_VEHICLES_READ',\r\n SETTINGUP_VEHICLES_WRITE: 'SETTINGUP_VEHICLES_WRITE',\r\n SETTINGUP_VEHICLE_SEGMENTS_READ: 'SETTINGUP_VEHICLE_SEGMENTS_READ',\r\n SETTINGUP_VEHICLE_SEGMENTS_WRITE: 'SETTINGUP_VEHICLE_SEGMENTS_WRITE',\r\n SETTINGUP_VEHICLE_BRANDS_READ: 'SETTINGUP_VEHICLE_BRANDS_READ',\r\n SETTINGUP_VEHICLE_BRANDS_WRITE: 'SETTINGUP_VEHICLE_BRANDS_WRITE',\r\n SETTINGUP_VEHICLE_MODELS_READ: 'SETTINGUP_VEHICLE_MODELS_READ',\r\n SETTINGUP_VEHICLE_MODELS_WRITE: 'SETTINGUP_VEHICLE_MODELS_WRITE',\r\n SETTINGUP_SUPPLIERS_READ: 'SETTINGUP_SUPPLIERS_READ',\r\n SETTINGUP_SUPPLIERS_WRITE: 'SETTINGUP_SUPPLIERS_WRITE',\r\n SETTINGUP_GENERIC_TYPES_READ: 'SETTINGUP_GENERIC_TYPES_READ',\r\n SETTINGUP_GENERIC_TYPES_WRITE: 'SETTINGUP_GENERIC_TYPES_WRITE',\r\n SETTINGUP_LOCALS_READ: 'SETTINGUP_LOCALS_READ',\r\n SETTINGUP_LOCALS_WRITE: 'SETTINGUP_LOCALS_WRITE',\r\n SETTINGUP_DIAGNOSTIC_TYPES_READ: 'SETTINGUP_DIAGNOSTIC_TYPES_READ',\r\n SETTINGUP_DIAGNOSTIC_TYPES_WRITE: 'SETTINGUP_DIAGNOSTIC_TYPES_WRITE',\r\n SETTINGUP_DRIVERS_READ: 'SETTINGUP_DRIVERS_READ',\r\n SETTINGUP_DRIVERS_WRITE: 'SETTINGUP_DRIVERS_WRITE',\r\n SETTINGUP_ALERTS_READ: 'SETTINGUP_ALERTS_READ',\r\n SETTINGUP_VERIFICATIONS_READ: 'SETTINGUP_VERIFICATIONS_READ',\r\n SETTINGUP_VERIFICATIONS_WRITE: 'SETTINGUP_VERIFICATIONS_WRITE',\r\n SETTINGUP_ANNOTATIONS_READ: 'SETTINGUP_ANNOTATIONS_READ',\r\n SETTINGUP_ANNOTATIONS_WRITE: 'SETTINGUP_ANNOTATIONS_WRITE',\r\n SETTINGUP_VEHICLE_MAINTENANCES_READ: 'SETTINGUP_VEHICLE_MAINTENANCES_READ',\r\n SETTINGUP_VEHICLE_MAINTENANCES_WRITE: 'SETTINGUP_VEHICLE_MAINTENANCES_WRITE',\r\n SETTINGUP_CHARGES_READ: 'SETTINGUP_CHARGES_READ',\r\n SETTINGUP_CHARGES_WRITE: 'SETTINGUP_CHARGES_WRITE',\r\n SETTINGUP_CONTRACTS_READ: 'SETTINGUP_CONTRACTS_READ',\r\n SETTINGUP_CONTRACTS_WRITE: 'SETTINGUP_CONTRACTS_WRITE',\r\n SETTINGUP_ACCIDENTS_READ: 'SETTINGUP_ACCIDENTS_READ',\r\n SETTINGUP_ACCIDENTS_WRITE: 'SETTINGUP_ACCIDENTS_WRITE',\r\n SETTINGUP_GPS_READ: 'SETTINGUP_GPS_READ',\r\n CHARGES_TOTAL_READ: 'CHARGES_TOTAL_READ',\r\n SETTINGUP_VEHICLES_MANAGEMENT_READ: 'SETTINGUP_VEHICLES_MANAGEMENT_READ',\r\n SETTINGUP_VEHICLES_MANAGEMENT_WRITE: 'SETTINGUP_VEHICLES_MANAGEMENT_WRITE',\r\n SETTINGUP_VEHICLES_MILEAGE_READ: 'SETTINGUP_VEHICLES_MILEAGE_READ',\r\n SETTINGUP_VEHICLES_MILEAGE_WRITE: 'SETTINGUP_VEHICLES_MILEAGE_WRITE',\r\n SETTINGUP_COMMUNICATIONS_READ: 'SETTINGUP_COMMUNICATIONS_READ',\r\n SETTINGUP_COMMUNICATIONS_WRITE: 'SETTINGUP_COMMUNICATIONS_WRITE',\r\n SETTINGUP_RESERVATIONS_READ: 'SETTINGUP_RESERVATIONS_READ',\r\n SETTINGUP_RESERVATIONS_WRITE: 'SETTINGUP_RESERVATIONS_WRITE',\r\n SETTINGUP_RESERVATIONS_EDIT_ALL: 'SETTINGUP_RESERVATIONS_EDIT_ALL',\r\n SETTINGUP_NOTIFICATIONS_READ: 'SETTINGUP_COMMUNICATIONS_READ',\r\n SETTINGUP_NOTIFICATIONS_WRITE: 'SETTINGUP_COMMUNICATIONS_WRITE',\r\n SETTINGUP_REFUND_READ: 'SETTINGUP_REFUND_READ',\r\n SETTINGUP_REFUND_STATUS_WRITE: 'SETTINGUP_REFUND_STATUS_WRITE',\r\n SETTINGUP_REFUND_SITUATION_WRITE: 'SETTINGUP_REFUND_SITUATION_WRITE',\r\n SETTINGUP_DASHBOARDS_READ: 'SETTINGUP_DASHBOARDS_READ',\r\n SETTINGUP_IMPORT_EXPENSES_WRITE : 'SETTINGUP_IMPORT_EXPENSES_WRITE',\r\n SETTINGUP_IMPORT_EXPENSES_READ: 'SETTINGUP_IMPORT_EXPENSES_READ',\r\n SETTINGUP_REQUEST_VERIFICATIONS_READ: 'SETTINGUP_REQUEST_VERIFICATIONS_READ',\r\n SETTINGUP_REQUEST_VERIFICATIONS_WRITE: 'SETTINGUP_REQUEST_VERIFICATIONS_WRITE',\r\n SETTINGUP_IMPORT_DATA_WRITE: 'SETTINGUP_IMPORT_DATA_WRITE',\r\n SETTINGUP_EXPORT_EXPENSES_WRITE: 'SETTINGUP_EXPORT_EXPENSES_WRITE',\r\n SETTINGUP_MOBILE_SEE_ONLY_RESERVE_VEHICLES: 'SETTINGUP_MOBILE_SEE_ONLY_RESERVE_VEHICLES'\r\n};\r\n\r\n/**\r\n * ROLES\r\n */\r\nexport const ROLES = {\r\n PLATFORM_ADMINISTRATOR: 'PLATFORM_ADMINISTRATOR',\r\n ADMINISTRATOR: 'ADMINISTRATOR',\r\n CONTRIBUTOR: 'CONTRIBUTOR'\r\n};\r\n\r\n/**\r\n * Pagination\r\n */\r\nexport const DEFAULT_PAGINATION_ITEMS_PER_PAGE = 10;\r\nexport const MAX_PAGINATION_ITEMS_PER_PAGE = 999999;\r\n\r\n/**\r\n * MIMETYPES\r\n */\r\nexport const MIMETYPES_IMAGE = 'image/png, image/gif, image/jpeg';\r\nexport const MIMETYPES_ALL_IMAGE = 'image/*';\r\n\r\nexport const isTablet = (width: number) => {\r\n return (width <= 1200);\r\n}\r\n\r\nexport const removeAccents = (str: string) => {\r\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n}\r\n\r\nexport const blobToBase64 = (blobFile: Blob): Promise => {\r\n return new Promise(resolve => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n resolve((reader.result) as string);\r\n };\r\n reader.readAsDataURL(blobFile);\r\n });\r\n}\r\n\r\nexport const blobToText = (blobFile: Blob): Promise => {\r\n return new Promise(resolve => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n resolve((reader.result) as string);\r\n };\r\n reader.readAsText(blobFile);\r\n });\r\n}\r\n\r\nexport const urlToBase64 = (url: string): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n blobToBase64(xhr.response).then(resolve).catch(reject);\r\n };\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.withCredentials = true;\r\n xhr.send();\r\n });\r\n}\r\n\r\nexport const googleMapsQuery = (latitude?: number, longitude?: number): string => {\r\n return `https://www.google.com/maps/search/?api=1&query=${latitude ?? 0},${longitude ?? 0}`;\r\n}\r\n\r\nexport const DEFAULT_INPUT_RULES: RegisterOptions = { minLength: 1, maxLength: 255 }\r\nexport const DEFAULT_INPUT_RULES_WITH_REQUIRED: RegisterOptions = { required: true, validate: value => !Utils.isStringNullOrEmpty(value), ...DEFAULT_INPUT_RULES }\r\nexport const DEFAULT_EMAIL_RULES: RegisterOptions = { ...DEFAULT_INPUT_RULES, pattern: { value: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,4}$/, message: 'common.errors.email_not_valid' } }\r\nexport const DEFAULT_EMAIL_RULES_WITH_REQUIRED: RegisterOptions = { required: true, validate: value => !Utils.isStringNullOrEmpty(value), ...DEFAULT_EMAIL_RULES }\r\n\r\nexport const FUELS = {\r\n HYBRID: 'HYBRID',\r\n ELECTRIC: 'ELECTRIC',\r\n GASEOUS_FUEL: 'GASEOUS_FUEL',\r\n GASOLINE: 'GASOLINE',\r\n DIESEL: 'DIESEL'\r\n};\r\n\r\nexport const COUNTRIES = {\r\n PT: 'PT',\r\n FR: 'FR'\r\n};\r\n\r\nexport const TOKEN_TYPES = {\r\n RESET_PASSWORD: 'resetPassword'\r\n};\r\n\r\n\r\nexport const ApplicationName = 'FleetMax';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register',\r\n Reset: 'resetPassword'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `${SERVER_BASE_URL}/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: 'Identity/Account/Register',\r\n IdentityManagePath: 'Identity/Account/Manage',\r\n IdentityTwoFactorAuthenticationPath: `${SERVER_BASE_URL}/Identity/Account/Manage/TwoFactorAuthentication`,\r\n Reset: `${prefix}/${LoginActions.Reset}`\r\n};\r\n\r\nexport const DASHBOARD_COLORS = {\r\n expenses: {\r\n ASSURANCE: '#68D9F3',\r\n CONTRACTS: '#E2B434',\r\n MAINTENANCES: '#DC3B86',\r\n COSTS: '#1781A1',\r\n FINES: '#e74c3c',\r\n FUEL: '#16E0CC',\r\n ENERGY: '#fc8332',\r\n CLEANING: '#27ae60',\r\n ACCESSORIES : '#9900CC',\r\n\t LOGO : '#0000CC',\r\n TRANSPORT: '#66999B',\r\n MISCELLANEOUS: '#996633',\r\n },\r\n consumes: {\r\n AVERAGE: '#1781A1',\r\n FUEL: '#1781A1',\r\n ENERGY: '#16DDCB',\r\n },\r\n monthlyCost: {\r\n FIXED_COST: '#D4872F',\r\n VARIABLE_COST: '#E2B434',\r\n },\r\n fuels: {\r\n GASOLINE: '#68D9F3',\r\n GASEOUS_FUEL: '#E2B434',\r\n ELECTRIC: '#DC3B86',\r\n DIESEL: '#1781A1',\r\n },\r\n monthlyRoute: {\r\n KM: '#000',\r\n TIME: '#000',\r\n TOTAL: '#000',\r\n BAR: '#16E0CC'\r\n },\r\n};\r\n\r\nexport const BLAMING_COLORS = {\r\n GUILTY: '#DC4C4C',\r\n NOT_GUILTY: '#16CCC3',\r\n};\r\n\r\nexport const USE_CONTRACT_TYPES = {\r\n CREDIT: 'CREDIT',\r\n LEASING: 'LEASING',\r\n ALD: 'ALD',\r\n PURCHASE: 'PURCHASE',\r\n};\r\n\r\nexport const SEGMENT_FEATURES = {\r\n KM: 'KM',\r\n FUEL: 'FUEL'\r\n};","import { AES, enc } from 'crypto-js';\r\nimport { STORAGE_KEY } from '../../Config';\r\n\r\nclass Storage {\r\n\r\n private encrypt(value: string): string {\r\n return AES.encrypt(value, STORAGE_KEY).toString();\r\n }\r\n\r\n private decrypt(value: string): string {\r\n return AES.decrypt(value, STORAGE_KEY).toString(enc.Utf8);\r\n }\r\n\r\n public set(key: string, value: string) {\r\n try {\r\n const encrypted = this.encrypt(value);\r\n localStorage.setItem(key, encrypted);\r\n return true;\r\n } catch (_) {\r\n return false;\r\n }\r\n }\r\n\r\n public setObject(key: string, value: any) {\r\n try {\r\n const encrypted = this.encrypt(JSON.stringify(value));\r\n return this.set(key, encrypted);\r\n } catch (_) {\r\n return false;\r\n }\r\n }\r\n\r\n public get(key: string) {\r\n try {\r\n const value = localStorage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n const decrypted: string = this.decrypt(value);\r\n return decrypted;\r\n } catch (_) {\r\n return null;\r\n }\r\n }\r\n\r\n public getObject(key: string) {\r\n try {\r\n const obj = this.get(key);\r\n if (!obj) {\r\n return null;\r\n }\r\n const decrypted: string = this.decrypt(obj);\r\n const result = JSON.parse(decrypted);\r\n return result;\r\n } catch (_) {\r\n return null;\r\n }\r\n }\r\n\r\n public remove(key: string) {\r\n try {\r\n localStorage.removeItem(key);\r\n return true;\r\n } catch (_) {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport default new Storage();\r\n","import i18n, { InitOptions } from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport fr from '../../assets/translations/fr.json';\r\nimport pt from '../../assets/translations/pt.json';\r\nimport en from '../../assets/translations/en.json';\r\nimport { DEFAULT_LANGUAGE, STORAGE, DEFAULTNS, LOGGER_PRINT_LOGS } from '../../Config';\r\nimport Storage from './Storage';\r\n\r\nconst listLanguages = ['pt', 'fr', 'en']\r\n\r\nconst languageDetector: any = {\r\n type: 'languageDetector',\r\n async: true,\r\n detect: (callback: (lng: string) => void) => {\r\n \r\n let language = Storage.get(STORAGE.CURRENT_LOCALE);\r\n if (language == null){\r\n const browserLanguage = window.navigator.language.toLowerCase().split('-')[0];\r\n const langByBrowser = listLanguages.find(x => browserLanguage.includes(x.toLowerCase()));\r\n language = langByBrowser || DEFAULT_LANGUAGE;\r\n }\r\n\r\n return callback(language);\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n init: () => { },\r\n cacheUserLanguage: (language: string) => {\r\n Storage.set(STORAGE.CURRENT_LOCALE, language);\r\n }\r\n};\r\n\r\nconst config: InitOptions = {\r\n fallbackLng: 'fr',\r\n debug: Boolean(LOGGER_PRINT_LOGS),\r\n initImmediate: false,\r\n load: 'languageOnly',\r\n ns: [DEFAULTNS],\r\n defaultNS: DEFAULTNS,\r\n interpolation: {\r\n escapeValue: false\r\n },\r\n react: {\r\n wait: true,\r\n useSuspense: false\r\n },\r\n resources: {\r\n pt: {\r\n [DEFAULTNS]: pt,\r\n },\r\n fr: {\r\n [DEFAULTNS]: fr\r\n },\r\n en: {\r\n [DEFAULTNS]: en\r\n }\r\n }\r\n};\r\n\r\ni18n\r\n .use(initReactI18next)\r\n .use(languageDetector)\r\n .init(config);\r\n\r\nexport default i18n;\r\n","export default __webpack_public_path__ + \"static/media/FleetMax_logo_verde.c3841fc7.svg\";","export default __webpack_public_path__ + \"static/media/welcome_inicio.9c5d79d7.png\";","export default __webpack_public_path__ + \"static/media/welcome_condutores.ac6cffa2.png\";","export default __webpack_public_path__ + \"static/media/welcome_veiculos.df0558d3.png\";","export default __webpack_public_path__ + \"static/media/welcome_contratosdespesasmanutenções.9c5d79d7.png\";","export default __webpack_public_path__ + \"static/media/welcome_dashboards.be47c13f.png\";","export default __webpack_public_path__ + \"static/media/welcome_apoioaocliente.2368453b.png\";","export default __webpack_public_path__ + \"static/media/x-circle.d7fdd5da.svg\";","import styles from './ScreenHeaderButton.module.scss';\r\n\r\ntype Props = {\r\n id?:string;\r\n icon: string;\r\n className?: string;\r\n classNameIcon?: string;\r\n onClick?: () => void | undefined;\r\n} & React.DetailedHTMLProps, HTMLButtonElement>;\r\n\r\nconst ScreenHeaderButton = ({ children, icon, className,classNameIcon,id, onClick }: Props) => (\r\n
\r\n \r\n {children}\r\n
\r\n);\r\n\r\nexport default ScreenHeaderButton;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { UserToken } from 'api/account/models/UserToken';\r\n\r\nexport const SET_AUTHENTICATION = 'SET_AUTHENTICATION';\r\nexport const SET_PROFILE = 'SET_PROFILE';\r\nexport const UPDATE_REFRESH_TOKEN = 'UPDATE_REFRESH_TOKEN';\r\nexport const SET_COMPANY_INFO_FILLED = 'SET_COMPANY_INFO_FILLED'\r\nexport interface Action {\r\n type: string;\r\n [propName: string]: any;\r\n}\r\n\r\nexport interface AuthenticationState {\r\n\tisAuthenticated: boolean;\r\n token: UserToken | null;\r\n profile: UserProfile | null;\r\n refreshToken: number;\r\n isCompanyInfoFilled: boolean;\r\n}\r\n","import { Dispatch } from 'redux';\r\nimport Storage from '../../common/services/Storage';\r\nimport { STORAGE } from '../../Config';\r\nimport { UserProfile } from '../../api/account/models/UserProfile';\r\nimport { SET_AUTHENTICATION, SET_PROFILE, UPDATE_REFRESH_TOKEN, SET_COMPANY_INFO_FILLED } from './type';\r\nimport { UserToken } from 'api/account/models/UserToken';\r\nimport i18n from 'common/services/I18n';\r\n\r\nexport const initAuthentication = (cb: (rt: boolean) => void) => async (dispatch: Dispatch) => {\r\n\ttry {\r\n\r\n\t\tconst profile = Storage.getObject(STORAGE.AUTH_USER_PROFILE);\r\n\t\tconst token = Storage.getObject(STORAGE.AUTH_USER_TOKEN);\r\n\r\n\t\tif (!profile || !token) {\r\n\t\t\tcb(false);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ti18n.changeLanguage(profile.languageCode);\r\n\t\t\r\n\t\tdispatch(setAuthentication(profile, token));\r\n\r\n\t\tcb(true);\r\n\t} catch (ex) {\r\n\t\tdispatch(logout() as any);\r\n\t\tcb(false);\r\n\t}\r\n}\r\n\r\nexport const authenticateUser = (profile: UserProfile, token: UserToken) => async (dispatch: Dispatch) => {\r\n\tStorage.setObject(STORAGE.AUTH_USER_PROFILE, profile);\r\n\tStorage.setObject(STORAGE.AUTH_USER_TOKEN, token);\t\t\r\n\tStorage.setObject(STORAGE.CURRENT_LOCALE, profile.languageCode);\r\n\ti18n.changeLanguage(profile.languageCode);\r\n\t\r\n\tdispatch(setAuthentication(profile, token));\r\n}\r\n\r\nexport const logout = () => async (dispatch: Dispatch) => {\r\n\tStorage.remove(STORAGE.AUTH_USER_TOKEN);\r\n\tStorage.remove(STORAGE.AUTH_USER_PROFILE);\r\n\r\n\tdispatch(setAuthentication(null, null));\r\n}\r\n\r\nexport const setCompanyInfo = (profile: UserProfile | null) => async (dispatch: Dispatch) => {\r\n\tStorage.setObject(STORAGE.AUTH_USER_PROFILE, profile);\t\r\n\tdispatch(setCompanyInfoFilled(profile)); \r\n}\r\n\r\nexport const setCompanyInfoFilled = (profile: UserProfile | null) => ({\r\n\ttype: SET_COMPANY_INFO_FILLED,\r\n\tprofile\r\n});\r\n\r\nexport const setAuthentication = (profile: UserProfile | null, token: UserToken | null) => ({\r\n\ttype: SET_AUTHENTICATION,\r\n\tprofile,\r\n\ttoken,\r\n});\r\n\r\nexport const setProfile = (profile: UserProfile | null) => ({\r\n\ttype: SET_PROFILE,\r\n\tprofile,\r\n});\r\n\r\nexport const updateRefreshToken = () => ({\r\n\ttype: UPDATE_REFRESH_TOKEN,\r\n});\r\n","import { Action, AuthenticationState, SET_AUTHENTICATION, SET_PROFILE, UPDATE_REFRESH_TOKEN, SET_COMPANY_INFO_FILLED } from './type';\r\n\r\nconst initialState: AuthenticationState = {\r\n\tisAuthenticated: false,\r\n\tprofile: null,\r\n\ttoken: null,\r\n\trefreshToken: 1,\r\n\tisCompanyInfoFilled: false,\r\n};\r\n\r\nfunction rootReducer(state: AuthenticationState = initialState, action: Action): AuthenticationState {\r\n\tswitch (action.type) {\r\n\t\tcase SET_AUTHENTICATION:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tisAuthenticated: action.profile ? true : false,\r\n\t\t\t\tprofile: action.profile || null,\r\n\t\t\t\ttoken: action.token || null,\r\n\t\t\t\tisCompanyInfoFilled: action.profile && action.profile.companyInfoFilled\r\n\t\t\t};\r\n\t\tcase SET_PROFILE:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tprofile: action.profile || null,\r\n\t\t\t};\r\n\t\tcase SET_COMPANY_INFO_FILLED:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tprofile: action.profile || null,\r\n\t\t\t\tisCompanyInfoFilled: true,\r\n\t\t\t};\r\n\t\tcase UPDATE_REFRESH_TOKEN:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\trefreshToken: state.refreshToken + 1,\r\n\t\t\t};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport default rootReducer;\r\n","import { AlertsTotalsDto } from 'api/alerts/models/AlertsTotalsDto';\r\n\r\nexport const SET_TOTALS = 'SET_TOTALS';\r\n\r\nexport type Action = SetTotalsAction;\r\n\r\nexport interface SetTotalsAction {\r\n type: typeof SET_TOTALS;\r\n totals: AlertsTotalsDto;\r\n}\r\n\r\nexport interface AlertsState {\r\n totals: AlertsTotalsDto;\r\n}\r\n","import { Action, AlertsState, SET_TOTALS } from './type';\r\n\r\nconst initialState: AlertsState = {\r\n totals: { totalNotRead: 0, totalRead: 0, totalNotReadOwn: 0, totalTreated: 0, totalNonTreated: 0, totalInterventionUrgent: 0, totalInformation: 0, totalIntervention: 0 },\r\n};\r\n\r\nfunction rootReducer(state: AlertsState = initialState, action: Action): AlertsState {\r\n switch (action.type) {\r\n\r\n case SET_TOTALS:\r\n return {\r\n ...state,\r\n totals: { ...action.totals },\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default rootReducer;\r\n","import authentication from './authentication/reducer';\r\nimport alerts from './alerts/reducer';\r\n\r\nconst reducers = {\r\n\tauthentication,\r\n\talerts,\r\n};\r\n\r\nexport default reducers;\r\n","import { applyMiddleware, combineReducers, createStore } from 'redux';\r\nimport { composeWithDevTools } from 'redux-devtools-extension/developmentOnly';\r\nimport thunk from 'redux-thunk';\r\nimport reducers from './reducers';\r\n\r\nconst store = createStore(\r\n\tcombineReducers(reducers),\r\n\tcomposeWithDevTools(applyMiddleware(thunk)),\r\n);\r\n\r\nexport default store;\r\n","import dayjs from 'dayjs';\r\nimport { LOGGER_LOG_TYPE, LOGGER_MESSAGE_TYPE, LOGGER_PRINT_LOGS, LOGGER_PRINT_LOGS_LEVEL, LOGGER_SEND_LOGS, LOGGER_SEND_LOGS_LEVEL, SERVER_BASE_URL, STORAGE } from '../../Config';\r\nimport Http from './Http';\r\nimport Storage from 'common/services/Storage';\r\n\r\nclass Logger {\r\n private systemName = '';\r\n private systemVersion = '';\r\n private appVersion = '';\r\n private url = SERVER_BASE_URL;\r\n private userId?: number;\r\n\r\n public setUserId(userId: number) {\r\n this.userId = userId;\r\n }\r\n\r\n public error(logType: LOGGER_LOG_TYPE, message: string, extraData?: any, allowSend = true): void {\r\n this.log(LOGGER_MESSAGE_TYPE.ERROR, logType, message, extraData, allowSend);\r\n }\r\n\r\n public info(logType: LOGGER_LOG_TYPE, message: string, extraData?: any, allowSend = true): void {\r\n this.log(LOGGER_MESSAGE_TYPE.INFO, logType, message, extraData, allowSend);\r\n }\r\n\r\n private log(messageType: LOGGER_MESSAGE_TYPE, logType: LOGGER_LOG_TYPE, message: string, extraData?: any, allowSend = true) {\r\n const data = {\r\n type: LOGGER_MESSAGE_TYPE[messageType],\r\n logType: LOGGER_LOG_TYPE[logType],\r\n date: dayjs.utc(new Date()).format('DD/MM/YYYY HH:mm:ss'),\r\n systemName: this.systemName,\r\n systemVersion: this.systemVersion,\r\n appVersion: this.appVersion,\r\n userId: this.userId,\r\n message,\r\n extraData,\r\n };\r\n\r\n if (LOGGER_PRINT_LOGS && messageType >= LOGGER_PRINT_LOGS_LEVEL) {\r\n const logMessage = `[${data.date}] ${data.message}: ${data.extraData && data.extraData.message ? data.extraData.message : ''}`;\r\n switch (messageType) {\r\n case LOGGER_MESSAGE_TYPE.INFO:\r\n console.info(logMessage, data);\r\n break;\r\n case LOGGER_MESSAGE_TYPE.ERROR:\r\n console.info(logMessage, data);\r\n break;\r\n default:\r\n console.log(logMessage, data);\r\n break;\r\n }\r\n }\r\n\r\n if (allowSend && LOGGER_SEND_LOGS && messageType >= LOGGER_SEND_LOGS_LEVEL) {\r\n const logMessage = `[${data.date}] ${data.message}: ${data.extraData && data.extraData.message ? data.extraData.message : ''}`;\r\n const profile = Storage.getObject(STORAGE.AUTH_USER_PROFILE); \r\n Http.log(logMessage, profile, { url: this.url });\r\n }\r\n }\r\n}\r\n\r\nexport default new Logger();\r\n","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\r\nimport * as qs from 'qs';\r\nimport { LOGGER_LOG_TYPE, LOGGER_SEND_LOGS, LOGGER_URL, LOGGER_KEYS, DEFAULT_LANGUAGE, API_BASE_URL, STORAGE } from '../../Config';\r\nimport { logout } from '../../store/authentication/action';\r\nimport store from '../../store/store';\r\nimport Logger from './Logger';\r\nimport Storage from './Storage';\r\nimport CustomFile from '../models/CustomFile';\r\nimport { UserToken } from 'api/account/models/UserToken';\r\nimport * as moment from 'moment-timezone';\r\nimport i18n from './I18n';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\n\r\nconst axiosConfig: AxiosRequestConfig = {\r\n responseType: 'json',\r\n // withCredentials: true,\r\n};\r\n\r\nconst http = axios.create(axiosConfig);\r\n\r\nclass Http {\r\n private language: string = DEFAULT_LANGUAGE;\r\n\r\n constructor() {\r\n this.initInterceptors();\r\n }\r\n\r\n private initInterceptors() {\r\n // Request\r\n http.interceptors.request.use(async (config: AxiosRequestConfig) => {\r\n config.baseURL = API_BASE_URL;\r\n config.headers = await this.getHeaders();\r\n return config;\r\n }, (error: AxiosError) => error);\r\n\r\n // Response\r\n http.interceptors.response.use(async (response: AxiosResponse): Promise => {\r\n return response.data;\r\n }, async (error: AxiosError) => {\r\n if (error.response && error.response.status === 401) {\r\n store.dispatch(logout() as any);\r\n }\r\n\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public setLanguage(language: string) {\r\n if (language) {\r\n this.language = language;\r\n }\r\n }\r\n\r\n public async post(url: string, data: any, config?: AxiosRequestConfig): Promise {\r\n return http.post(url, data, config).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n public async postWithFile(url: string, data: any, files: CustomFile[], config?: AxiosRequestConfig): Promise {\r\n const formData = new FormData();\r\n\r\n for (const file of files) {\r\n formData.append(`${file.containerName ? file.containerName : 'files[]'}`, file);\r\n }\r\n\r\n formData.append('model', JSON.stringify(data));\r\n\r\n return http.post(url, formData, {\r\n ...(config || {}),\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n }).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n public async put(url: string, data: any, config?: AxiosRequestConfig): Promise {\r\n return http.put(url, data, config).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n public async putWithFile(url: string, data: any, files: CustomFile[], config?: AxiosRequestConfig): Promise {\r\n const formData = new FormData();\r\n\r\n for (const file of files) {\r\n formData.append(`${file.containerName ? file.containerName : 'files[]'}`, file);\r\n }\r\n \r\n formData.append('model', JSON.stringify(data));\r\n\r\n return http.put(url, formData, {\r\n ...(config || {}),\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n }).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n public async get(url: string, params: any = null): Promise {\r\n if (params) {\r\n url = `${url}?${qs.stringify(params)}`;\r\n }\r\n return http.get(url).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n public async getWithConfig(url: string, params: any = null, config?: AxiosRequestConfig): Promise {\r\n if (params) {\r\n url = `${url}?${qs.stringify(params)}`;\r\n }\r\n return http.get(url, config).catch((error: any) => this.onError(error, url));\r\n }\r\n\r\n private getHeaders = async () => {\r\n const token: UserToken = Storage.getObject(STORAGE.AUTH_USER_TOKEN);\r\n const timezone = moment.tz.guess();\r\n \r\n return {\r\n 'Authorization': token ? `${token.tokenType} ${token.token}` : null,\r\n 'Accept': 'application/json, text/plain, */*',\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'X-App-Lang': i18n.language,\r\n 'X-Timezone' : timezone\r\n };\r\n };\r\n\r\n private onError(error: any, url: string) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, error.message, { url, error }, false);\r\n return Promise.reject(error);\r\n }\r\n\r\n public log(message: string, profile: UserProfile, additionalData: any): Promise {\r\n if (LOGGER_SEND_LOGS) {\r\n return http.post(`${LOGGER_URL}/api/v1.0/log`, {\r\n message: message,\r\n stackTrace: '',\r\n applicationKey: LOGGER_KEYS,\r\n level: 'Error',\r\n user: profile !== undefined ? profile.userName + ' (' + profile.id + ')' : 'Anonymous',\r\n additionalData\r\n }, { baseURL: '' }).catch((error: any) => { \r\n return this.onError(error, LOGGER_URL);\r\n });\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n}\r\n\r\nexport default new Http();\r\n","import { UpdateUserDto } from './models/UpdateUserDto';\r\nimport { POLICIES, ROLES } from 'Config';\r\nimport Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { UserSearchCriteria } from './models/UserSearchCriteria';\r\nimport { UserDto, UsersSelectItemDto } from './models/UserDto';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport { CheckAvailabilityDto } from 'api/common/models/CheckAvailabilityDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport CustomFile from 'common/models/CustomFile';\r\n\r\n\r\nclass UserService {\r\n\r\n \r\n public getList(criteria: UserSearchCriteria) {\r\n return Http.get>('users', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('users/' + id);\r\n }\r\n\r\n public getLoggedUser() {\r\n return Http.get('users/account');\r\n }\r\n\r\n public catalog() {\r\n return Http.get('users/catalog');\r\n }\r\n \r\n public create(model: UserDto, mediaFile: CustomFile | null) {\r\n return Http.postWithFile('users', model, mediaFile ? [mediaFile] : []);\r\n }\r\n\r\n public update(model: UserDto, mediaFile: CustomFile | null) {\r\n return Http.putWithFile('users', model, mediaFile ? [ mediaFile ] : []);\r\n }\r\n\r\n public updateAccount(model: UpdateUserDto, mediaFile: CustomFile | null) {\r\n return Http.putWithFile('users/account', model, mediaFile ? [ mediaFile ] : []);\r\n }\r\n\r\n public remove(model: UserDto) {\r\n return Http.put('users/deactivate', model);\r\n }\r\n\r\n public getRoles() {\r\n return Http.get('users/get-all-roles');\r\n }\r\n\r\n public getAllForCompany() {\r\n return Http.get('users/get-All-for-select-item');\r\n }\r\n \r\n public hasPolicies(userPolicies: string[], policies: (keyof typeof POLICIES)[], type: 'OR' | 'AND' = 'AND') {\r\n\r\n const allowed = type === 'AND'\r\n ? (policies || []).map(p => (userPolicies || []).find(up => up === p) ? true : false).length > 0 && (policies || []).map(p => (userPolicies || []).find(up => up === p) ? true : false).filter(p => !p).length === 0 ? true : false\r\n : (policies || []).map(p => (userPolicies || []).find(up => up === p) ? true : false).filter(p => p).length > 0 ? true : false;\r\n\r\n return allowed;\r\n }\r\n\r\n public isPlatformAdmin(userRoles?: string[]) {\r\n return userRoles?.find(x => x === ROLES.PLATFORM_ADMINISTRATOR) ? true : false;\r\n }\r\n\r\n public isAdmin(userRoles?: string[]) {\r\n return userRoles?.find(x => x === ROLES.ADMINISTRATOR) ? true : false;\r\n }\r\n \r\n public checkAvailability(data: CheckAvailabilityDto) {\r\n return Http.get('users/check-availability', data);\r\n }\r\n\r\n public updateWelcomeModal(id: string) {\r\n return Http.put('users/do-not-show-welcome-modal/' + id,{});\r\n }\r\n\r\n public candAddUsers() {\r\n return Http.get('users/can-add-users');\r\n }\r\n\r\n \r\n\r\n\r\n}\r\n\r\nexport default new UserService();","import styles from './WelcomeModal.module.scss'\r\nimport MainLogo from 'assets/svg/FleetMax_logo_verde.svg'\r\nimport ImgInicio from 'assets/img/welcome_inicio.png'\r\nimport ImgDrivers from 'assets/img/welcome_condutores.png'\r\nimport ImgVehicles from 'assets/img/welcome_veiculos.png'\r\nimport ImgContractsChargesMaintenanceTrips from 'assets/img/welcome_contratosdespesasmanutenções.png'\r\nimport ImgDashboards from 'assets/img/welcome_dashboards.png'\r\nimport ImgClientSupport from 'assets/img/welcome_apoioaocliente.png'\r\nimport CloseButton from 'assets/svg/x-circle.svg'\r\nimport ScreenHeaderButton from '../screenHeader/ScreenHeaderButton'\r\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { setProfile } from 'store/authentication/action';\r\nimport { Swiper, SwiperSlide } from 'swiper/react'\r\nimport { Pagination, Navigation } from 'swiper'\r\nimport 'swiper/swiper.min.css'\r\nimport 'swiper/modules/navigation/navigation.scss'\r\nimport { Col, Row } from 'react-flexbox-grid'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { POLICIES } from 'Config'\r\n\r\ntype Props = {\r\n}\r\n\r\ntype WelcomeModalItemWithValidation = {\r\n\timage: string;\r\n\ttitle: string;\r\n\tdescription: string;\r\n\tpolicies: (keyof typeof POLICIES)[];\r\n\ttype?: 'OR' | 'AND';\r\n};\r\n\r\nconst WelcomeModal: React.FC = ({ }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst paginationRef = useRef(null)\r\n\tconst dispatch = useDispatch();\r\n\tconst [isOpen, setIsOpen] = useState(false)\r\n\tconst [checkBox, setCheckBox] = useState(false)\r\n\tconst userProfile = useSelector(state => state.authentication.profile);\r\n\tconst cachedFilters = localStorage.getItem(userProfile?.id ?? '');\r\n\r\n\tuseEffect(() => {\r\n\t\t(userProfile?.hasSeenWelcomeModal || cachedFilters === 'true') ? setIsOpen(false) : setIsOpen(true)\r\n\t\tuserProfile?.hasSeenWelcomeModal ? localStorage.removeItem(userProfile.id) : null\r\n\t}, [])\r\n\r\n\tconst handleCheck = (e: any) => {\r\n\t\tsetCheckBox(e.target.checked);\r\n\t}\r\n\r\n\tconst closeModal = () => {\r\n\t\tcheckBox ? updateUserProfile() : null;\r\n\t\tsetIsOpen(false)\r\n\t}\r\n\r\n\tconst updateUserProfile = () => {\r\n\t\tUsersService.updateWelcomeModal(userProfile?.id ?? '')\r\n\t\tuserProfile ? userProfile.hasSeenWelcomeModal = true : null;\r\n\t\tlocalStorage.setItem(userProfile?.id ?? '', 'true');\r\n\t\tdispatch(setProfile(userProfile))\r\n\t}\r\n\r\n\tconst validateItem = useCallback((item: WelcomeModalItemWithValidation) => {\r\n\t\tconst type = item.type || 'AND';\r\n\t\tconst policies = item.policies || [];\r\n\t\tconst userPolicies = userProfile?.policies || [];\r\n\r\n\t\treturn !policies.length || UsersService.hasPolicies(userPolicies, policies, type);\r\n\t}, [userProfile]);\r\n\r\n\r\n\tconst sidebarItems: WelcomeModalItemWithValidation[] = useMemo(() => {\r\n\t\tconst items: WelcomeModalItemWithValidation[] = [\r\n\t\t\t{\r\n\t\t\t\timage: ImgInicio,\r\n\t\t\t\ttitle: t('welcome.start'),\r\n\t\t\t\tdescription: t('welcome.start_message'),\r\n\t\t\t\tpolicies: [],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgInicio,\r\n\t\t\t\ttitle: t('welcome.config'),\r\n\t\t\t\tdescription: t('welcome.config_message'),\r\n\t\t\t\tpolicies: [\r\n\t\t\t\t\t'SETTINGUP_GENERIC_TYPES_READ', 'SETTINGUP_GENERIC_TYPES_WRITE',\r\n\t\t\t\t\t'SETTINGUP_VEHICLE_SEGMENTS_READ', 'SETTINGUP_VEHICLE_SEGMENTS_WRITE',\r\n 'SETTINGUP_VEHICLE_BRANDS_READ', 'SETTINGUP_VEHICLE_BRANDS_WRITE',\r\n 'SETTINGUP_VEHICLE_MODELS_READ', 'SETTINGUP_VEHICLE_MODELS_WRITE',\r\n 'SETTINGUP_SUPPLIERS_READ', 'SETTINGUP_SUPPLIERS_WRITE',\r\n 'SETTINGUP_LOCALS_READ', 'SETTINGUP_LOCALS_WRITE',\r\n 'SETTINGUP_DIAGNOSTIC_TYPES_READ', 'SETTINGUP_DIAGNOSTIC_TYPES_WRITE',\r\n 'SETTINGUP_COMMUNICATIONS_READ', 'SETTINGUP_COMMUNICATIONS_WRITE',\r\n 'SETTINGUP_NOTIFICATIONS_READ', 'SETTINGUP_NOTIFICATIONS_WRITE'\r\n\t\t\t\t],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgDrivers,\r\n\t\t\t\ttitle: t('welcome.drivers'),\r\n\t\t\t\tdescription: t('welcome.drivers_message'),\r\n\t\t\t\tpolicies: ['SETTINGUP_DRIVERS_READ', 'SETTINGUP_DRIVERS_WRITE'],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgVehicles,\r\n\t\t\t\ttitle: t('welcome.vehicles'),\r\n\t\t\t\tdescription: t('welcome.vehicles_message'),\r\n\t\t\t\tpolicies: ['SETTINGUP_VEHICLES_READ', 'SETTINGUP_VEHICLES_WRITE'],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgContractsChargesMaintenanceTrips,\r\n\t\t\t\ttitle: t('welcome.contracts_charges_maitenances_trips'),\r\n\t\t\t\tdescription: t('welcome.contracts_charges_maitenances_message'),\r\n\t\t\t\tpolicies: ['SETTINGUP_CHARGES_READ', 'SETTINGUP_CHARGES_WRITE',\r\n\t\t\t\t\t\t 'SETTINGUP_VEHICLE_MAINTENANCES_READ', 'SETTINGUP_VEHICLE_MAINTENANCES_WRITE',\r\n \t\t\t\t\t\t 'SETTINGUP_CONTRACTS_READ', 'SETTINGUP_CONTRACTS_WRITE',\r\n\t\t\t\t\t\t 'SETTINGUP_VERIFICATIONS_READ',\r\n\t\t\t\t\t\t 'SETTINGUP_VERIFICATIONS_WRITE'\r\n\t\t\t\t],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgDashboards,\r\n\t\t\t\ttitle: t('welcome.dashboards'),\r\n\t\t\t\tdescription: t('welcome.dashboards_message'),\r\n\t\t\t\tpolicies: ['SETTINGUP_DASHBOARDS_READ'],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: ImgClientSupport,\r\n\t\t\t\ttitle: t('welcome.client_support'),\r\n\t\t\t\tdescription: t('welcome.client_support_message'),\r\n\t\t\t\tpolicies: [],\r\n\t\t\t\ttype: 'OR',\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\treturn items.filter(item => validateItem(item));\r\n\t}, [userProfile, validateItem]);\r\n\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{isOpen && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t closeModal()}\r\n\t\t\t\t\t\t\tclassName={styles.closeButton}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('welcome.title')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{sidebarItems && sidebarItems.map((x, i) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{x.title}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{x.description}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default WelcomeModal\r\n","import React from 'react';\r\nimport { RouteProps, Route, Redirect } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from '../../store/types';\r\nimport { ApplicationPaths, QueryParameterNames } from '../../Config';\r\nimport WelcomeModal from 'common/components/welcomeModal/WelcomeModal';\r\n\r\ntype Props = {\r\n\r\n} & RouteProps;\r\n\r\ntype AuthState = {\r\n authenticated: boolean;\r\n ready: boolean\r\n}// & AuthenticationState;\r\n\r\n\r\nconst AuthorizeRoute: React.FC = ({ children, ...props }: Props) => {\r\n const isAuthenticated = useSelector(state => state.authentication.isAuthenticated);\r\n const isCompanyInfoFilled = useSelector(state => state.authentication.isCompanyInfoFilled);\r\n const link = document.createElement('a');\r\n link.href = `${props.path}`;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`.replace('*','');\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURIComponent(returnUrl)}`\r\n\r\n return (\r\n <>\r\n {isCompanyInfoFilled && }\r\n {\r\n return isAuthenticated ? children : \r\n }} />\r\n \r\n );\r\n\r\n}\r\n\r\nexport default AuthorizeRoute;\r\n","import { UserManager, WebStorageStateStore, User } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from '../../Config';\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n\r\n\r\nexport class AuthorizeService {\r\n\r\n private userManager : UserManager | undefined = undefined;\r\n private _callbacks : any = [];\r\n private _nextSubscriptionId = 0;\r\n private _user : User | undefined | null = null;\r\n private _isAuthenticated = false;\r\n private _popUpDisabled = true;\r\n \r\n public createArguments = (state : any) => ({ useReplaceToNavigate: true, data: state });\r\n public error = (message : any) => ({ status: AuthenticationResultStatus.Fail, message });\r\n public success = (state : any, user : User | undefined ) => ({ status: AuthenticationResultStatus.Success, state, user });\r\n public redirect = () => ({ status: AuthenticationResultStatus.Redirect });\r\n\r\n \r\n public async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n public async getUser() {\r\n if (this._user && this._user?.profile) {\r\n return this._user.profile;\r\n }\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager?.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n public async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager?.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n public async signIn(state : any) {\r\n await this.ensureUserManagerInitialized();\r\n try { \r\n await this.userManager?.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log('Redirect authentication error: ', redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n\r\n public async completeSignIn(url : any) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager?.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state, user);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n async signOut(state : any) {\r\n await this.ensureUserManagerInitialized(); \r\n try {\r\n await this.userManager?.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log('Redirect signout error: ', redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n\r\n async completeSignOut(url: any) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager?.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.state, undefined);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user : User | undefined | null) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n // this.notifySubscribers();\r\n }\r\n\r\n // public subscribe(callback : any) {\r\n // this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n // return this._nextSubscriptionId - 1;\r\n // }\r\n\r\n // public unsubscribe(subscriptionId : any) {\r\n // const subscriptionIndex = this._callbacks\r\n // .map((element: any, index : number) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n // .filter((element : any) => element.found === true);\r\n // if (subscriptionIndex.length !== 1) {\r\n // throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n // }\r\n\r\n // this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n // }\r\n\r\n // public notifySubscribers() {\r\n // for (let i = 0; i < this._callbacks.length; i++) {\r\n // const callback = this._callbacks[i].callback;\r\n // callback();\r\n // }\r\n // }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n const response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n const settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager?.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\n","import Http from '../../common/services/Http';\r\nimport { UserProfile } from './models/UserProfile';\r\nimport { LoginViewModel } from './models/LoginViewModel';\r\nimport { PasswordResetTokenViewModel } from './models/PasswordResetTokenViewModel';\r\nimport { PasswordResetViewModel } from './models/PasswordResetViewModel';\r\nimport { VerifyTokenViewModel } from './models/VerifyTokenViewModel';\r\nimport { UserLogin } from './models/UserLogin';\r\n\r\nclass AccountService {\r\n\r\n public login(model: LoginViewModel) {\r\n return Http.post('account/token', model);\r\n }\r\n\r\n public generateResetPasswordCode(model: PasswordResetTokenViewModel) {\r\n return Http.post('account/generate-reset-password-code', model);\r\n }\r\n\r\n public resetPassword(model: PasswordResetViewModel) {\r\n return Http.post('account/reset-password', model);\r\n }\r\n\r\n public profile() {\r\n return Http.get('account/profile');\r\n }\r\n\r\n public verifyToken(model: VerifyTokenViewModel) {\r\n return Http.get('account/verify-token', model);\r\n }\r\n}\r\n\r\nexport default new AccountService();\r\n","export const sleep = (ms: number) => new Promise(r => setTimeout(r, ms));","import { useState } from 'react';\r\nimport { QueryParameterNames, ApplicationPaths, LoginActions } from '../../Config';\r\nimport authService, { AuthenticationResultStatus } from '../../common/services/AuthorizeService';\r\nimport { useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { authenticateUser } from '../../store/authentication/action';\r\nimport AccountService from '../../api/account/AccountService';\r\nimport { sleep } from 'common/utils/GlobalFunctions';\r\n\r\ntype Props = {\r\n action: string;\r\n}\r\n\r\ntype LoginState = {\r\n message?: string;\r\n}\r\n\r\nconst IdentityLoginScreen = ({ action }: Props) => {\r\n const dispatch = useDispatch();\r\n const [loginMessage, setLoginMessage] = useState({});\r\n\r\n useEffect(() => {\r\n switch (action) {\r\n case LoginActions.Login:\r\n login(getReturnUrl(null));\r\n break;\r\n case LoginActions.LoginCallback:\r\n processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n if (error) {\r\n setLoginMessage({ message: error });\r\n }\r\n break;\r\n case LoginActions.Profile:\r\n redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n redirectToRegister();\r\n break;\r\n case LoginActions.Reset: \r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }, []);\r\n\r\n const login = async (returnUrl: any) => {\r\n const state = { returnUrl };\r\n const result: any = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n setLoginMessage(result.message);\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n const processLoginCallback = async () => {\r\n const url = window.location.href;\r\n await sleep(1000);\r\n const result: any = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success: {\r\n const token = { token: result?.user.access_token, tokenType: result?.user.token_type, expires: '' }\r\n const emptyProfile = { id: '', userName: '', realName: '', email: '', policies: [], roles: [], useValueWithVat: true, issues: [] };\r\n dispatch(authenticateUser(emptyProfile, token));\r\n const profile = await AccountService.profile();\r\n dispatch(authenticateUser(profile, token));\r\n navigateToReturnUrl(getReturnUrl(null));\r\n }\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n setLoginMessage(result.message);\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n const getReturnUrl = (state: any) => {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.' + fromQuery)\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n const redirectToRegister = () => { redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`); }\r\n\r\n const redirectToProfile = () => { redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath); }\r\n\r\n const redirectToApiAuthorizationPath = (apiAuthorizationPath: any) => { window.location.replace(`${window.location.origin}/${apiAuthorizationPath}`); };\r\n\r\n const navigateToReturnUrl = (returnUrl: any) => window.location.replace(returnUrl);\r\n\r\n return (\r\n
\r\n );\r\n}\r\nexport default IdentityLoginScreen;","import React, { useEffect, useState } from 'react';\r\nimport { QueryParameterNames, ApplicationPaths, LogoutActions } from '../../Config';\r\nimport authService, { AuthenticationResultStatus } from '../../common/services/AuthorizeService';\r\nimport { useDispatch } from 'react-redux';\r\nimport { logout as signOut } from '../../store/authentication/action';\r\nimport { sleep } from 'common/utils/GlobalFunctions';\r\n\r\n\r\ntype Props = {\r\n action: string;\r\n}\r\n\r\ntype LogoutState = {\r\n message?: string;\r\n authenticated?: boolean;\r\n}\r\n\r\nconst IdentityLogoutScreen = ({ action }: Props) => {\r\n const dispatch = useDispatch();\r\n const [logoutInfo, setLogoutInfo] = useState({ message: undefined, authenticated: false });\r\n\r\n useEffect(() => {\r\n switch (action) {\r\n case LogoutActions.Logout: \r\n logout(getReturnUrl(null));\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n setLogoutInfo({ message: 'You successfully logged out!' });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n populateAuthenticationState();\r\n }, []);\r\n\r\n\r\n const logout = async (returnUrl: any) => {\r\n const state = { returnUrl };\r\n const isAuthenticated = await authService.isAuthenticated();\r\n if (isAuthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n setLogoutInfo({ message: (result as { status: string; message: string; }).message });\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n } else {\r\n setLogoutInfo({ message: 'You successfully logged out!' });\r\n }\r\n }\r\n\r\n const processLogoutCallback = async () => {\r\n const url = window.location.href;\r\n await sleep(1000);\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n {\r\n dispatch(signOut());\r\n await navigateToReturnUrl(getReturnUrl((result as { status: string; state: any; }).state));\r\n }\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n setLogoutInfo({ message: (result as { status: string; message: string; }).message });\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n\r\n\r\n const populateAuthenticationState = async () => {\r\n const authenticated = await authService.isAuthenticated();\r\n setLogoutInfo({ authenticated });\r\n }\r\n\r\n const getReturnUrl = (state: any) => {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.')\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n const navigateToReturnUrl = (returnUrl: any) => window.location.replace(returnUrl);\r\n\r\n return (\r\n
\r\n\r\n );\r\n\r\n\r\n}\r\nexport default IdentityLogoutScreen;","export default __webpack_public_path__ + \"static/media/logo.09a512bd.svg\";","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"chevron-small-down\",\n d: \"M18.39,12.5a.845.845,0,0,1,1.189,0,.826.826,0,0,1,0,1.178l-4.752,4.657a.846.846,0,0,1-1.19,0L8.884,13.675a.828.828,0,0,1,0-1.178.845.845,0,0,1,1.189,0l4.16,3.82L18.39,12.5Z\",\n transform: \"translate(-8.638 -12.252)\"\n});\nfunction SvgChevronDown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 11.188,\n height: 6.324,\n viewBox: \"0 0 11.188 6.324\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDown);\nexport default __webpack_public_path__ + \"static/media/chevron_down.c3321170.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\r\nimport styles from './Popover.module.scss'\r\nimport { Popover as TinyPopover, PopoverAlign } from 'react-tiny-popover'\r\n\r\ntype Props = {\r\n onClickOutside?: () => void;\r\n content?: (setIsPopoverOpen: (v: boolean) => void) => JSX.Element;\r\n contentContainerClassName?: string;\r\n children?: (isOpen: boolean, setIsPopoverOpen: (v: boolean) => void) => JSX.Element;\r\n positions?: ('left' | 'top' | 'right' | 'bottom')[];\r\n align?: Exclude;\r\n containerParent?: HTMLElement;\r\n isOpen?: boolean;\r\n onChange?: (v: boolean) => void;\r\n customTop?: number;\r\n containerStyle?: Partial;\r\n reposition?: boolean;\r\n overflowHidden?: boolean;\r\n};\r\n\r\nconst Popover: React.FC = ({\r\n onClickOutside, content, contentContainerClassName, children, positions = ['left', 'top'], align, containerParent, customTop, isOpen, onChange,\r\n containerStyle, reposition, overflowHidden\r\n}: Props) => {\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(isOpen || false);\r\n\r\n const setIsOpen = (v: boolean) => {\r\n setIsPopoverOpen(v);\r\n if (onChange) {\r\n onChange(v);\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n setIsOpen(false)\r\n onClickOutside && onClickOutside();\r\n }\r\n\r\n useEffect(() => {\r\n if (isOpen !== undefined) {\r\n setIsOpen(isOpen);\r\n }\r\n }, [isOpen]);\r\n \r\n return (\r\n \r\n {content && content(setIsOpen)}\r\n }\r\n containerStyle={{\r\n zIndex: '6',\r\n overflowY: overflowHidden ? 'hidden !important' : 'auto',\r\n ...(containerStyle ? containerStyle : {})\r\n }}\r\n containerParent={containerParent}\r\n >\r\n
\r\n {isPopoverOpen &&
}\r\n {children && children(isPopoverOpen, setIsOpen)}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Popover;\r\n","import React, { ReactChild } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport styles from './Popover.module.scss';\r\n\r\ntype Props = {\r\n text?: string;\r\n children?: ReactChild | ReactChild[];\r\n onClick?: (event: React.MouseEvent) => void;\r\n url?: string;\r\n};\r\n\r\nconst DropdownItem: React.FC = ({ text, children, url, onClick }: Props) => {\r\n return (\r\n <>\r\n {onClick\r\n ? \r\n {Boolean(text) && text}\r\n {children}\r\n \r\n : \r\n {Boolean(text) && text}\r\n {children}\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default DropdownItem;","export default __webpack_public_path__ + \"static/media/default_photo.5efa95be.svg\";","import IconNoPhoto from 'assets/svg/default_photo.svg';\r\nimport styles from './Avatar.module.scss';\r\n\r\nconst sizes = {\r\n x1: 10,\r\n x2: 20,\r\n x3: 30,\r\n x4: 40,\r\n}\r\n\r\nexport type AvatarProps = {\r\n size?: 'default' | keyof typeof sizes;\r\n src: string | undefined | null;\r\n fw?: boolean;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst Avatar = ({ size, src, fw, ...props }: AvatarProps) => {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default Avatar;","export default __webpack_public_path__ + \"static/media/i_alertas_white.6072d21c.svg\";","import React from 'react';\r\nimport styles from './AlertsCounter.module.scss';\r\nimport AlertIcon from 'assets/svg/i_alertas_white.svg';\r\n\r\nexport type Size = 'normal' | 'small'\r\n\r\ntype Props = {\r\n totalAlerts: number,\r\n className?: string,\r\n size?: Size\r\n};\r\n\r\nconst AlertsCounter: React.FC = ({ totalAlerts, className, size }: Props) => {\r\n\r\n return (\r\n
\r\n
\r\n \r\n {totalAlerts > 99 ? '99+' : totalAlerts}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AlertsCounter;\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, Redirect, useHistory } from 'react-router-dom';\r\nimport styles from './Sidebar.module.scss';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Logo from 'assets/svg/logo.svg';\r\nimport { ReactComponent as ChevronDownIcon } from 'assets/svg/chevron_down.svg';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Reducers } from 'store/types';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport PopoverItem from 'common/components/popover/PopoverItem';\r\nimport { setProfile } from 'store/authentication/action';\r\nimport AccountService from 'api/account/AccountService';\r\nimport Logger from 'common/services/Logger';\r\nimport { ApplicationPaths, LOGGER_LOG_TYPE } from 'Config';\r\nimport Avatar from 'common/components/avatar/Avatar';\r\nimport AlertsCounter from 'common/components/alertsCounter/AlertsCounter';\r\nexport interface SidebarItem {\r\n text: string;\r\n url: string;\r\n badgeValue?: number;\r\n}\r\n\r\ntype Props = {\r\n items: SidebarItem[];\r\n}\r\n\r\nconst Sidebar: React.FunctionComponent = ({ items }: Props) => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const user = useSelector(state => state.authentication.profile);\r\n const userRefreshToken = useSelector(state => state.authentication.refreshToken);\r\n const isActive = (path: any, match: any, location: any) => !!(match || path === location.pathname);\r\n\r\n const onLogoutClick = () => {\r\n // dispatch(logout());\r\n history.push(`${ApplicationPaths.LogOut}`);\r\n }\r\n\r\n const onAccountClick = () => {\r\n history.push(`/account/details`);\r\n }\r\n\r\n const getProfile = async () => {\r\n try {\r\n if (!user) {\r\n return;\r\n }\r\n const profile = await AccountService.profile();\r\n dispatch(setProfile(profile));\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get user profile`, error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getProfile();\r\n }, [userRefreshToken])\r\n\r\n if (!user) {\r\n return \r\n }\r\n\r\n const buildRole = (user: UserProfile | null) => {\r\n if (user && user.roles && user.roles.length > 0) {\r\n const role = user?.roles[0];\r\n if (role === 'ADMINISTRATOR' || role === 'DRIVER' || role === 'PLATFORM_ADMINISTRATOR') {\r\n return t('common.roles.' + user?.roles[0] as any)\r\n }\r\n else {\r\n return role;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {items.map((item, i) => (\r\n \r\n \r\n {item.text}\r\n {item.badgeValue && }\r\n \r\n \r\n ))}\r\n
\r\n
\r\n <>\r\n { setIsPopoverOpen(false); onAccountClick(); }}>{t('menu.my_profile')}\r\n {t('menu.logout')}\r\n }\r\n >\r\n {(_, setIsPopoverOpen) => (\r\n
setIsPopoverOpen(true)}>\r\n \r\n
\r\n
\r\n {user?.realName}\r\n \r\n
\r\n
{buildRole(user)}
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n

{t('menu.copyright', { year: new Date().getFullYear() })}

\r\n

{t('menu.all_rights_reserved')}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Sidebar;","import Http from 'common/services/Http';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { AlertsSearchCriteria } from './models/AlertsSearchCriteria';\r\nimport { AlertsListItemDto } from './models/AlertsListItemDto';\r\nimport { AlertsTotalsDto } from './models/AlertsTotalsDto';\r\nimport { CreateAlertViewModel } from './models/CreateAlertViewModel';\r\n\r\nclass AlertsService {\r\n\r\n public getList(criteria: AlertsSearchCriteria) {\r\n return Http.get>('alerts', criteria);\r\n }\r\n public getAlerts(criteria: AlertsSearchCriteria) {\r\n return Http.get('alerts/get-list', criteria);\r\n }\r\n\r\n public getTotals(criteria?: AlertsSearchCriteria) {\r\n return Http.get('alerts/totals', criteria || { page: 1, itemsPerPage: 9999999 });\r\n }\r\n\r\n public createAlert(model: CreateAlertViewModel) {\r\n return Http.post('alerts', model);\r\n }\r\n\r\n public read(alertId: string) {\r\n return Http.put('alerts/read', { alertId });\r\n }\r\n \r\n}\r\n\r\nexport default new AlertsService();\r\n","import { AlertsTotalsDto } from 'api/alerts/models/AlertsTotalsDto';\r\nimport { SetTotalsAction, SET_TOTALS } from './type';\r\nimport { Dispatch } from 'redux';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport AlertsService from 'api/alerts/AlertsService';\r\n\r\nexport const updateTotals = () => async (dispatch: Dispatch) => {\r\n try {\r\n setTimeout(async () => {\r\n const totals = await AlertsService.getTotals();\r\n dispatch(setTotals(totals));\r\n }, 1000);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list`, error);\r\n }\r\n}\r\n\r\nexport const setTotals = (totals: AlertsTotalsDto): SetTotalsAction => ({\r\n type: SET_TOTALS,\r\n totals,\r\n});\r\n","import React from 'react';\r\nimport styles from './FormItem.module.scss';\r\n\r\ntype Props = {\r\n flexProperties?: boolean\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst FormItem: React.FC = ({ children, flexProperties = false, ...props }: Props) => {\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default FormItem;\r\n","import React from 'react';\r\nimport styles from './Label.module.scss';\r\n\r\ntype Props = {\r\n required?: boolean;\r\n} & React.DetailedHTMLProps, HTMLLabelElement>;\r\n\r\nconst Label: React.FC = ({ required = false, children, ...props }: Props) => {\r\n\r\n return (\r\n \r\n {children} {required ? ' *' : ''}\r\n \r\n );\r\n}\r\n\r\nexport default Label;\r\n","/* eslint-disable react/display-name */\r\n/* eslint-disable react/prop-types */\r\n\r\nimport React, { memo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './Input.module.scss';\r\n\r\ntype InputPreset = 'default' | 'login';\r\n\r\nexport type Props = {\r\n preset?: InputPreset;\r\n} & React.DetailedHTMLProps, HTMLInputElement>;\r\n\r\nconst Input = React.forwardRef(({ preset, onChange, ...props }, ref) => {\r\n const presetClassName = preset ? styles[preset] : styles.default;\r\n\r\n const { t } = useTranslation();\r\n const [textLength, setTextLength] = useState(0);\r\n\r\n return (\r\n <>\r\n {\r\n setTextLength(e.currentTarget.value.length);\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n }}\r\n onBlur={props.onBlur ? props.onBlur\r\n : event => {\r\n event.target.value = event.target.value.trim();\r\n }}\r\n className={`${styles.input} ${presetClassName} ${props.className || ''} ${props.disabled ? styles.disabled : ''} `}\r\n />\r\n {textLength === props.maxLength &&
{t('common.field_max_length', { value: textLength })}
}\r\n \r\n );\r\n});\r\n\r\nexport default memo(Input);\r\n","import React from 'react';\r\nimport { FieldError } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './InputError.module.scss';\r\n\r\ntype Props = {\r\n error: FieldError | undefined;\r\n maxLength?: number;\r\n isWarning?: boolean;\r\n};\r\n\r\nconst InputError: React.FC = ({ error, maxLength, isWarning }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const renderMessage = () => {\r\n switch (error?.type) {\r\n case 'required':\r\n case 'validate':\r\n return t('common.errors.required');\r\n case 'email_not_available':\r\n return t('common.errors.email_not_available');\r\n case 'pattern':\r\n return t(error?.message as any);\r\n case 'email_not_available':\r\n return t('common.errors.email_not_available');\r\n case 'maxLength':\r\n if (maxLength) { return t('common.errors.max_length_detail', { maxLength: maxLength }); }\r\n else { return t('common.errors.max_length_no_detail'); }\r\n default:\r\n return error?.message;\r\n }\r\n }\r\n\r\n return error && error.type ? (\r\n
\r\n {renderMessage()}\r\n
\r\n ) : null;\r\n}\r\n\r\nexport default InputError;\r\n","import React from 'react';\r\nimport styles from './Button.module.scss';\r\n\r\ntype ButtonPreset = 'primary' | 'secondary' | 'success' | 'danger' | 'popover' | 'secondaryDanger' | 'primaryAlt' | 'white' | 'secondary-success' | 'disabled';\r\n\r\ntype ButtonSize = 'normal' | 'small' | 'extraSmall';\r\n\r\ntype Props = {\r\n text?: string;\r\n preset?: ButtonPreset;\r\n onlyIcon?: boolean;\r\n size?: ButtonSize;\r\n isDisabled?: boolean;\r\n isLoading?: boolean;\r\n bw?: boolean;\r\n} & React.DetailedHTMLProps, HTMLButtonElement>;\r\n\r\nconst Button: React.FC = ({ children, type, text, preset = 'primary', size, onlyIcon, isDisabled, isLoading, bw = true, ...props }: Props) => {\r\n\r\n const presetClassName = preset ? styles[preset] : styles.primary;\r\n const sizeClassName = size ? (styles as any)['size'+size[0].toUpperCase()+size.substr(1, size.length)] : styles.sizeNormal;\r\n\r\n return (\r\n {\r\n if (isLoading) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n else {\r\n props.onClick && props.onClick(e);\r\n }\r\n }}\r\n className={`${onlyIcon ? styles.buttonIcon : styles.button} ${presetClassName} ${sizeClassName} ${props.className || ''} ${isDisabled || props.disabled ? styles.disabled : ''} ${bw ? styles.bw : ''}`}\r\n >\r\n {isLoading &&
\r\n \r\n
}\r\n {Boolean(text) && text}\r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default Button;\r\n","import Events from './Events';\r\n\r\nclass Loading {\r\n\r\n public show() {\r\n Events.emit('loading', true);\r\n }\r\n\r\n public hide() {\r\n Events.emit('loading', false);\r\n }\r\n}\r\n\r\nexport default new Loading();\r\n","export default __webpack_public_path__ + \"static/media/trash.9b3e626a.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Modal from 'react-modal';\r\nimport Button from '../button/Button';\r\nimport Label from '../label/Label';\r\nimport styles from './QuestionYesNo.module.scss';\r\n\r\ntype Props = {\r\n message?: string | undefined | null;\r\n isVisible: boolean;\r\n onYes: () => void;\r\n onNo: () => void;\r\n children?: React.ReactElement | undefined;\r\n isInformation?: boolean | undefined | null;\r\n};\r\n\r\nconst QuestionYesNo: React.FC = ({ message, isVisible, onYes, onNo, children, isInformation }: Props) => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const customStyles = {\r\n content: {\r\n top: '15%',\r\n left: '35%',\r\n right: '35%',\r\n bottom: 'auto',\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n zIndex: 1000\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n {message &&
\r\n \r\n
}\r\n {children && children}\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default QuestionYesNo;\r\n","import CustomFile from 'common/models/CustomFile';\r\nimport { blobToBase64 } from 'Config';\r\nimport React from 'react';\r\nimport { FaRegSave } from 'react-icons/fa';\r\nimport ReactPainter from 'react-painter';\r\nimport styles from './ImageEditor.module.scss';\r\n\r\ntype Props = {\r\n image: CustomFile;\r\n saveFile?: (image: CustomFile) => void;\r\n canEdit?: boolean;\r\n isDetails?: boolean;\r\n width?: number;\r\n height?: number;\r\n};\r\n\r\nconst ImageEditor: React.FC = ({ image, width, height, canEdit = false, isDetails = false, saveFile }: Props) => {\r\n const onSave = async (blob: Blob) => {\r\n if (!saveFile) return;\r\n\r\n const img: CustomFile = new File([blob], image.name) as any;\r\n img.id = image.id;\r\n img.key = image.key;\r\n img.url = image.url;\r\n img.urlBase64 = await blobToBase64(img);\r\n img.containerName = image.containerName;\r\n img.width = image.width;\r\n img.height = image.height;\r\n img.toRemove = image.toRemove;\r\n\r\n saveFile(img);\r\n }\r\n\r\n const url = image.urlBase64 ?? '';\r\n\r\n const renderEdit = (): JSX.Element => {\r\n return (\r\n
\r\n {/*
\r\n setColor(e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n setLineWidth(e.target.value as any)} />\r\n
*/}\r\n { e.preventDefault(); e.stopPropagation(); triggerSave(); }} />\r\n
{canvas}
\r\n
\r\n )}\r\n />\r\n }\r\n\r\n const renderDetails = (): JSX.Element => {\r\n return
\r\n }\r\n\r\n return (<>\r\n {canEdit && !isDetails ? renderEdit() : renderDetails()}\r\n );\r\n}\r\n\r\nexport default ImageEditor;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C1.3393158 -0.00856522 1.3393158 -0.00856522 2.70568848 -0.01730347 C3.68286331 -0.01842133 4.66003815 -0.01953918 5.66682434 -0.02069092 C6.69804413 -0.02565582 7.72926392 -0.03062073 8.79173279 -0.03573608 C12.21079674 -0.05036666 15.62981427 -0.05716197 19.04890442 -0.06268311 C21.42441815 -0.06843475 23.79993186 -0.07419249 26.17544556 -0.07995605 C31.16134355 -0.09046923 36.14722541 -0.09630952 41.13313293 -0.09979248 C47.51422173 -0.10527138 53.89509652 -0.12928536 60.27611828 -0.15776443 C65.18583798 -0.17641379 70.09550643 -0.18159769 75.00525856 -0.18312836 C77.35712667 -0.18615128 79.70899395 -0.1941676 82.06082726 -0.20731354 C85.35674031 -0.22441817 88.65213458 -0.2224825 91.94807434 -0.21600342 C92.91512802 -0.2252182 93.8821817 -0.23443298 94.87854004 -0.243927 C102.16110219 -0.19920952 107.89999633 0.75813311 113.56843567 5.70294189 C117.10216458 9.87916697 116.95397433 13.54254724 117.19343567 18.82794189 C117.25603577 20.18713745 117.25603577 20.18713745 117.31990051 21.5737915 C117.66635052 30.11555172 117.74040915 38.65552676 117.75593567 47.20294189 C117.76052795 48.49740234 117.76512024 49.79186279 117.76985168 51.12554932 C117.73226592 74.52644536 117.73226592 74.52644536 111.63093567 81.39044189 C108.67907615 83.97331898 106.02119498 84.27098087 102.24421692 84.49981689 C101.38763489 84.56427002 100.53105286 84.62872314 99.64851379 84.69512939 C97.86562456 84.82385786 96.08167662 84.93877672 94.29695129 85.03887939 C88.07484352 85.54073723 83.43302719 87.03211801 78.63093567 91.14044189 C75.18922286 96.58056859 74.50511676 101.21788369 74.51741028 107.56134033 C74.51748581 108.86238708 74.51756134 110.16343384 74.51763916 111.50390625 C74.52274543 112.91921019 74.52796142 114.33451374 74.53327942 115.74981689 C74.53514532 117.20141552 74.53656841 118.65301478 74.53756714 120.10461426 C74.54137879 123.91863759 74.55119752 127.73262262 74.56227112 131.54663086 C74.57251432 135.44117719 74.57707099 139.33572972 74.58210754 143.23028564 C74.59282102 150.86702182 74.60988118 158.50372648 74.63093567 166.14044189 C75.46238098 166.17782471 76.29382629 166.21520752 77.15046692 166.25372314 C78.78048645 166.35233643 78.78048645 166.35233643 80.44343567 166.45294189 C81.52238098 166.51094971 82.60132629 166.56895752 83.71296692 166.62872314 C86.63093567 167.14044189 86.63093567 167.14044189 88.49438477 168.37823486 C89.99907252 170.71123318 90.00524822 172.25341324 90.00325012 175.02325439 C90.00947891 176.01438232 90.0157077 177.00551025 90.02212524 178.02667236 C90.00831062 179.62986328 90.00831062 179.62986328 89.99421692 181.26544189 C89.99496468 182.91310547 89.99496468 182.91310547 89.99572754 184.59405518 C89.99338604 186.91747852 89.98365315 189.24090434 89.96711731 191.56427002 C89.94352899 195.12634903 89.94655552 198.68767967 89.95320129 202.24981689 C89.94762454 204.5050297 89.94051467 206.76023935 89.93171692 209.01544189 C89.93262833 210.08423584 89.93353973 211.15302979 89.93447876 212.25421143 C89.92494675 213.24533936 89.91541473 214.23646729 89.90559387 215.25762939 C89.90098648 216.13016357 89.89637909 217.00269775 89.89163208 217.90167236 C89.63093567 220.14044189 89.63093567 220.14044189 87.63093567 223.14044189 C84.73215441 224.21644352 81.9574888 224.26980457 78.88691711 224.28088379 C77.93639969 224.28659393 76.98588226 224.29230408 76.00656128 224.29818726 C74.45260902 224.29986404 74.45260902 224.29986404 72.86726379 224.30157471 C71.77095139 224.30653961 70.67463898 224.31150452 69.54510498 224.31661987 C65.91745884 224.33122914 62.28985639 224.33804031 58.66218567 224.34356689 C56.14399718 224.34931791 53.6258087 224.35507565 51.10762024 224.36083984 C46.50306092 224.37000283 41.89851414 224.37630557 37.29394674 224.3793366 C30.51851852 224.38382154 23.7432916 224.40139481 16.96792459 224.43033719 C11.09569493 224.45455047 5.22353256 224.46228038 -0.64874268 224.46401215 C-3.14626158 224.46704436 -5.64377951 224.47509191 -8.14126587 224.48819733 C-11.62946471 224.50519973 -15.11716931 224.50339195 -18.60539246 224.49688721 C-20.15934471 224.51070938 -20.15934471 224.51070938 -21.74468994 224.52481079 C-23.17046608 224.51645706 -23.17046608 224.51645706 -24.62504578 224.50793457 C-25.44946419 224.50940113 -26.2738826 224.51086769 -27.12328339 224.51237869 C-29.94235093 224.04549658 -31.30216228 223.08858813 -33.36906433 221.14044189 C-35.11808218 215.89338834 -34.59614574 210.31980921 -34.61906433 204.82794189 C-34.63968933 203.60397705 -34.66031433 202.38001221 -34.68156433 201.11895752 C-34.68929871 199.34101807 -34.68929871 199.34101807 -34.69718933 197.52716064 C-34.70653503 196.44652344 -34.71588074 195.36588623 -34.72550964 194.25250244 C-34.23700356 189.98744286 -32.95644015 186.58534267 -29.73429871 183.65240479 C-29.14970886 183.30943359 -28.56511902 182.9664624 -27.96281433 182.61309814 C-27.30619812 182.21663086 -26.64958191 181.82016357 -25.97306824 181.41168213 C-25.27874695 181.01279785 -24.58442566 180.61391357 -23.86906433 180.20294189 C-22.42868466 179.34142317 -20.98858182 178.47944146 -19.54875183 177.61700439 C-18.48672546 176.99100342 -18.48672546 176.99100342 -17.40324402 176.35235596 C-14.55766987 174.65703309 -11.77814394 172.87245474 -8.99406433 171.07794189 C-4.68662886 168.31259435 -2.40959177 167.01171718 2.75593567 167.07794189 C3.66601379 167.08696533 4.57609192 167.09598877 5.51374817 167.10528564 C6.56175598 167.12268799 6.56175598 167.12268799 7.63093567 167.14044189 C7.59613098 165.89907471 7.56132629 164.65770752 7.52546692 163.37872314 C7.49731983 161.73680964 7.47002066 160.09488144 7.44343567 158.45294189 C7.41829895 157.6363208 7.39316223 156.81969971 7.36726379 155.97833252 C7.30946166 151.21928975 7.4009971 147.91687766 10.63093567 144.14044189 C15.63093567 141.14044189 15.63093567 141.14044189 27.63093567 141.14044189 C27.63093567 129.26044189 27.63093567 117.38044189 27.63093567 105.14044189 C23.34093567 105.14044189 19.05093567 105.14044189 14.63093567 105.14044189 C12.63093567 103.14044189 12.63093567 103.14044189 12.40388489 101.16925049 C12.41959534 99.9909668 12.41959534 99.9909668 12.43562317 98.78887939 C12.44529114 97.51270752 12.44529114 97.51270752 12.45515442 96.21075439 C12.48029114 94.87657471 12.48029114 94.87657471 12.50593567 93.51544189 C12.51495911 92.61825439 12.52398254 91.72106689 12.53327942 90.79669189 C12.55688597 88.57767604 12.58981257 86.35919112 12.63093567 84.14044189 C10.92163879 84.29706299 10.92163879 84.29706299 9.17781067 84.45684814 C-2.9326707 85.2024465 -11.24992698 82.73328977 -21.97843933 77.20684814 C-28.81203508 73.77937163 -34.17445611 74.03591534 -41.42765808 75.76544189 C-48.36042316 76.64930039 -54.65349786 74.66430008 -61.11906433 72.39044189 C-61.86027527 72.15067627 -62.60148621 71.91091064 -63.36515808 71.66387939 C-67.98129036 70.05610621 -70.86967849 68.57294648 -73.36906433 64.14044189 C-73.75968933 61.24591064 -73.75968933 61.24591064 -73.61906433 58.32794189 C-73.58297058 57.35212158 -73.54687683 56.37630127 -73.50968933 55.37091064 C-73.46328308 54.63485596 -73.41687683 53.89880127 -73.36906433 53.14044189 C-75.2659198 53.21005127 -75.2659198 53.21005127 -77.20109558 53.28106689 C-78.86122824 53.31858402 -80.52138641 53.35498424 -82.18156433 53.39044189 C-83.43163269 53.44071533 -83.43163269 53.44071533 -84.70695496 53.49200439 C-90.87466151 53.59108402 -90.87466151 53.59108402 -93.44328308 51.24981689 C-94.36906433 49.14044189 -94.36906433 49.14044189 -94.36906433 47.14044189 C-95.02639053 47.14488312 -95.68371674 47.14932434 -96.36096191 47.15390015 C-103.19005667 47.19807849 -110.01911096 47.22828544 -116.84831238 47.25030518 C-119.39845935 47.26037518 -121.94859475 47.27403193 -124.498703 47.2913208 C-128.15994623 47.31552501 -131.82103707 47.32691495 -135.48234558 47.33575439 C-137.19808525 47.35123825 -137.19808525 47.35123825 -138.94848633 47.36703491 C-140.53979622 47.36726151 -140.53979622 47.36726151 -142.16325378 47.36749268 C-143.09813126 47.3719339 -144.03300873 47.37637512 -144.99621582 47.38095093 C-147.36906433 47.14044189 -147.36906433 47.14044189 -150.36906433 45.14044189 C-150.74406433 42.64044189 -150.74406433 42.64044189 -150.36906433 40.14044189 C-147.04330911 37.92327175 -146.03300193 37.89500751 -142.16325378 37.91339111 C-141.10238052 37.91354218 -140.04150726 37.91369324 -138.94848633 37.91384888 C-137.80465988 37.92417145 -136.66083344 37.93449402 -135.48234558 37.94512939 C-134.31020004 37.94795929 -133.1380545 37.95078918 -131.9303894 37.95370483 C-128.1806779 37.96491436 -124.43120384 37.99002061 -120.68156433 38.01544189 C-118.14185423 38.02547068 -115.6021404 38.03459671 -113.06242371 38.04278564 C-106.83122268 38.06485623 -100.60016047 38.09834151 -94.36906433 38.14044189 C-94.05968933 37.33606689 -93.75031433 36.53169189 -93.43156433 35.70294189 C-92.36906433 33.14044189 -92.36906433 33.14044189 -91.36906433 32.14044189 C-90.0263902 32.05412315 -88.67932111 32.03337716 -87.33390808 32.04278564 C-86.52502136 32.0460083 -85.71613464 32.04923096 -84.88273621 32.05255127 C-84.03259949 32.06093018 -83.18246277 32.06930908 -82.30656433 32.07794189 C-81.45256042 32.08245361 -80.59855652 32.08696533 -79.71867371 32.09161377 C-77.6021077 32.10343816 -75.48557748 32.12137421 -73.36906433 32.14044189 C-73.39226746 31.39278564 -73.41547058 30.64512939 -73.43937683 29.87481689 C-73.45742371 28.88997314 -73.47547058 27.90512939 -73.49406433 26.89044189 C-73.51726746 25.91591064 -73.54047058 24.94137939 -73.56437683 23.93731689 C-73.35932327 21.00094997 -72.92370125 19.60378159 -71.36906433 17.14044189 C-69.63249207 16.05963135 -69.63249207 16.05963135 -67.55265808 15.25372314 C-66.78759949 14.95530518 -66.02254089 14.65688721 -65.23429871 14.34942627 C-64.43314636 14.05358643 -63.63199402 13.75774658 -62.80656433 13.45294189 C-61.64544128 12.99177979 -61.64544128 12.99177979 -60.46086121 12.52130127 C-53.24236721 9.7745471 -46.37476898 8.29616282 -38.74406433 10.14044189 C-30.27516348 12.17501267 -24.0845193 9.36740009 -16.61906433 5.64044189 C-14.93741869 4.81620587 -13.25515298 3.99323339 -11.57218933 3.17169189 C-10.83645691 2.80624268 -10.10072449 2.44079346 -9.34269714 2.06427002 C-6.10728496 0.54982176 -3.52886406 0.01352906 0 0 Z \",\n fill: \"#B3B2B2\",\n transform: \"translate(150.3690643310547,-0.14044189453125)\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C4.3956001 -0.11802706 8.79078286 -0.18785559 13.1875 -0.25 C15.02731445 -0.30027344 15.02731445 -0.30027344 16.90429688 -0.3515625 C30.37075223 -0.49368868 41.63806265 2.65868455 51.82421875 11.6015625 C55.78067784 15.63803986 58.32381708 20.27901248 60.8046875 25.3125 C61.15341415 26.0161972 61.50214081 26.71989441 61.86143494 27.44491577 C65.41671734 34.70980932 68.53141221 42.12963494 71.5625 49.625 C72.15243677 51.07219766 72.74261239 52.51929798 73.33300781 53.96630859 C75.23501527 58.63899131 77.11906222 63.31880342 79 68 C79.3380365 68.84014648 79.676073 69.68029297 80.02435303 70.54589844 C82.10913045 75.72973525 84.18477789 80.91710675 86.24923706 86.10906982 C86.91087076 87.77242498 87.57387264 89.43523664 88.23831177 91.09747314 C89.16941891 93.43009436 90.09351133 95.76537378 91.015625 98.1015625 C91.28896164 98.78355713 91.56229828 99.46555176 91.84391785 100.16821289 C96.75252017 112.68848146 97.1547328 124.73177062 97.1328125 138.0859375 C97.13348835 139.55213436 97.1344607 141.01833111 97.13571167 142.48452759 C97.13718008 145.55235871 97.13506488 148.62016058 97.13037109 151.68798828 C97.12472412 155.56181055 97.12804281 159.43556357 97.13377762 163.30938339 C97.16864219 190.43487639 97.16864219 190.43487639 96.6796875 202.3515625 C96.65770294 203.08313568 96.63571838 203.81470886 96.61306763 204.56845093 C96.31620273 210.19534723 94.67448432 213.41364644 90.625 217.25 C84.29195358 221.47203095 75.93744482 220.18390136 68.625 220.1875 C67.32304687 220.19974609 66.02109375 220.21199219 64.6796875 220.22460938 C63.41640625 220.22654297 62.153125 220.22847656 60.8515625 220.23046875 C59.70510254 220.23457764 58.55864258 220.23868652 57.37744141 220.24291992 C52.23637279 219.87315245 48.23993576 218.99194861 44.1875 215.75 C36.16660621 205.66659067 40 192.19717095 40 180 C19.54 180 -0.92 180 -22 180 C-22 168.12 -22 156.24 -22 144 C-10.1875 143.75 -10.1875 143.75 -6.47338867 143.70214844 C-5.5063501 143.6715332 -4.53931152 143.64091797 -3.54296875 143.609375 C-2.55321045 143.58842773 -1.56345215 143.56748047 -0.54370117 143.54589844 C2.13082564 143.21775965 2.13082564 143.21775965 3.85424805 141.09472656 C5.19361741 139.08598607 5.19361741 139.08598607 4.875 136.875 C4.03281253 134.64674175 4.03281253 134.64674175 1 133 C-1.89659349 132.75878651 -4.7053355 132.62700558 -7.60546875 132.5859375 C-8.44467361 132.56657135 -9.28387848 132.5472052 -10.14851379 132.5272522 C-12.82807258 132.46748787 -15.5076744 132.42108388 -18.1875 132.375 C-20.00457599 132.3368173 -21.82163394 132.29776539 -23.63867188 132.2578125 C-28.09230132 132.16178897 -32.54601551 132.07774641 -37 132 C-37.08742801 127.79179855 -37.14053641 123.58383224 -37.1875 119.375 C-37.21263672 118.18519531 -37.23777344 116.99539062 -37.26367188 115.76953125 C-37.32310468 108.67721647 -37.1084914 103.85881691 -32.52734375 98.171875 C-25.89816529 92.24307657 -18.83650319 92.08464197 -10.25 91.625 C-4.8571508 91.25701735 -1.93868958 90.73139013 2 87 C2.3098584 86.14011475 2.6197168 85.28022949 2.93896484 84.39428711 C5 82 5 82 7.21563721 81.54812622 C10.27200742 81.38453354 13.29119062 81.38675222 16.3515625 81.44140625 C18.04446915 81.44490334 18.04446915 81.44490334 19.77157593 81.44847107 C22.16403741 81.45822455 24.55647521 81.48004795 26.94873047 81.51293945 C30.58987092 81.56202642 34.22965345 81.57440149 37.87109375 81.58007812 C40.19793087 81.59417756 42.52475636 81.61038674 44.8515625 81.62890625 C45.93313629 81.63426895 47.01471008 81.63963165 48.12905884 81.64515686 C54.37534891 81.7420428 59.95176802 82.42063855 66 84 C65.66379639 83.27748047 65.32759277 82.55496094 64.98120117 81.81054688 C63.67758749 79.00814258 62.37487673 76.20531988 61.07229614 73.4024353 C60.18595916 71.49668699 59.29801513 69.59169343 58.40991211 67.68676758 C55.5255737 61.49230676 52.66921701 55.28937519 49.8984375 49.04296875 C49.41866455 47.96917969 48.9388916 46.89539062 48.44458008 45.7890625 C47.54659498 43.77387037 46.65786445 41.75451964 45.7800293 39.73046875 C42.70177552 32.85314632 39.10895439 25.81731186 31.875 22.625 C31.23304688 22.32851563 30.59109375 22.03203125 29.9296875 21.7265625 C26.51658359 20.44146669 23.30923336 19.86546167 19.671875 19.68359375 C18.87265625 19.64169922 18.0734375 19.59980469 17.25 19.55664062 C16.425 19.51732422 15.6 19.47800781 14.75 19.4375 C13.90953125 19.39431641 13.0690625 19.35113281 12.203125 19.30664062 C10.13559329 19.20091457 8.06781719 19.09998705 6 19 C5.85304688 17.82244141 5.85304688 17.82244141 5.703125 16.62109375 C5.55359375 15.57050781 5.4040625 14.51992188 5.25 13.4375 C5.11078125 12.40496094 4.9715625 11.37242188 4.828125 10.30859375 C3.82268123 6.29156133 2.17758448 3.50980588 0 0 Z M27 130 C24.89898405 132.6740203 25.00153024 134.04284685 25.125 137.5 C26.08138059 141.32552237 26.87074434 142.67541008 30 145 C35.41338267 146.87090973 41.49689037 146.22466948 47.16186523 146.24023438 C49.29515865 146.24992126 51.42747999 146.28096106 53.56054688 146.3125 C54.932286 146.31903309 56.30403195 146.32428236 57.67578125 146.328125 C58.91239502 146.3374707 60.14900879 146.34681641 61.4230957 146.35644531 C65.66175638 145.93405472 68.23929564 144.9793486 72 143 C74.4915904 139.2626144 74.45793285 137.42668417 74 133 C72.20437595 130.24670979 70.94745078 128.47372539 68 127 C65.35971563 126.87677055 62.74684217 126.81161732 60.10546875 126.796875 C59.3210994 126.79117493 58.53673004 126.78547485 57.72859192 126.77960205 C56.06671499 126.7701486 54.40481928 126.7636167 52.74291992 126.75976562 C50.20783462 126.75007771 47.67356621 126.71906596 45.13867188 126.6875 C43.52344231 126.68096803 41.90820695 126.67571832 40.29296875 126.671875 C39.53759323 126.6595282 38.78221771 126.6471814 38.00395203 126.63446045 C33.47673661 126.65349162 30.61107968 127.22506712 27 130 Z \",\n fill: \"#B3B2B2\",\n transform: \"translate(275,4)\"\n});\nfunction SvgAssetDefaultImage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 370 250\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssetDefaultImage);\nexport default __webpack_public_path__ + \"static/media/asset-default-image.5cc58246.svg\";\nexport { ForwardRef as ReactComponent };","export default \"data:image/png;base64,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\"","import CustomFile from 'common/models/CustomFile';\r\nimport { blobToBase64, isTablet, MIMETYPES_IMAGE } from 'Config';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './MediaSelector.module.scss';\r\nimport { FaCamera } from 'react-icons/fa';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport TrashIcon from 'assets/svg/trash.svg';\r\nimport QuestionYesNo from '../questionYesNo/QuestionYesNo';\r\nimport Utils from 'common/services/Utils';\r\nimport ImageEditor from '../imageEditor/ImageEditor';\r\nimport Label from '../label/Label';\r\nimport { ReactComponent as CarIcon } from 'assets/svg/asset-default-image.svg'\r\nimport Avatar from '../avatar/Avatar';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\n\r\ntype Props = {\r\n container?: string;\r\n onAddMedias?: (medias: CustomFile[]) => void;\r\n onRemoveMedia?: (mediaId: string) => void;\r\n onUpdateMedia?: (media: CustomFile) => void;\r\n isMulti?: boolean;\r\n initialMedias?: CustomFile[];\r\n isDetails?: boolean;\r\n canEdit?: boolean;\r\n label?: string;\r\n vehicleIcon?: boolean;\r\n isProfilePic?: boolean;\r\n};\r\n\r\nconst MediaSelector: React.FC = ({ container, onAddMedias, onRemoveMedia, onUpdateMedia, isMulti = false, initialMedias = [], isDetails = false, \r\n canEdit = false, label, vehicleIcon, isProfilePic = false }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const key = Utils.makeid(5);\r\n\r\n const isMobile = isTablet(window.innerWidth);\r\n\r\n const [medias, setMedias] = useState([]);\r\n const [selectedMedia, setSelectedMedia] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const importFile = () => {\r\n const inputMedias = document.getElementById(`myImage_${key}`);\r\n if (inputMedias) {\r\n inputMedias.click();\r\n }\r\n }\r\n\r\n const getData = async () => {\r\n if (initialMedias.length > 0) {\r\n initialMedias.map(media => {\r\n if (!media.urlBase64) {\r\n media.urlBase64 = media.url;\r\n }\r\n });\r\n setSelectedMedia(initialMedias[0]);\r\n setMedias(initialMedias);\r\n }\r\n }\r\n\r\n const uploadFile = async (event: any) => {\r\n const m: CustomFile[] = [];\r\n for (let size = 0; size < event.target.files.length; size++) {\r\n const file: CustomFile = event.target.files[size];\r\n const fileUrl = await blobToBase64(file);\r\n file.urlBase64 = fileUrl;\r\n file.id = Utils.newGuid();\r\n if (container) {\r\n file.containerName = container;\r\n }\r\n m.push(file);\r\n setSelectedMedia(file);\r\n }\r\n\r\n if (onAddMedias) {\r\n onAddMedias([...medias, ...m]);\r\n }\r\n setMedias([...medias, ...m]);\r\n }\r\n\r\n const renderAddMedia = (): JSX.Element => {\r\n return <>\r\n
\r\n\r\n {vehicleIcon ?\r\n
\r\n \r\n
\r\n :\r\n isProfilePic ? \r\n
\r\n \r\n
\r\n :
\r\n \r\n
\r\n }\r\n\r\n {label && !isDetails && }\r\n
\r\n \r\n }\r\n\r\n const renderEmptyMedia = (): JSX.Element => {\r\n return isProfilePic ? \r\n
\r\n \r\n
\r\n : vehicleIcon \r\n ? \r\n
\r\n
\r\n
\r\n :
{t('common.without_image')}
\r\n }\r\n\r\n const renderSingleMedia = (): JSX.Element => {\r\n return <>\r\n
\r\n {selectedMedia &&
}\r\n {!selectedMedia && isDetails && renderEmptyMedia()}\r\n {!selectedMedia && !isDetails && renderAddMedia()}\r\n
\r\n \r\n }\r\n\r\n const renderMultipleMedia = (): JSX.Element => {\r\n return
\r\n {medias.map((media, index) => {\r\n return
{ setSelectedMedia(media) }}>
\r\n })}\r\n {!isDetails && renderAddMedia()}\r\n
\r\n }\r\n\r\n const removeMedia = () => {\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setShowRemoveModal(false);\r\n }\r\n\r\n const onRemove = () => {\r\n setShowRemoveModal(false);\r\n const filteredMedias = [...medias.filter(x => x.id != selectedMedia?.id)];\r\n setMedias(filteredMedias);\r\n if (onRemoveMedia) {\r\n onRemoveMedia(selectedMedia?.id ?? '');\r\n }\r\n setSelectedMedia(filteredMedias.length > 0 ? filteredMedias[0] : null);\r\n }\r\n\r\n const onDrawMedia = (f: CustomFile) => {\r\n const mediaArr: CustomFile[] = [];\r\n medias.forEach(media => {\r\n mediaArr.push(media.id === f.id ? f : media);\r\n });\r\n setMedias(mediaArr);\r\n if (onUpdateMedia) {\r\n onUpdateMedia(f);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [initialMedias]);\r\n\r\n return (\r\n
\r\n
\r\n {isMulti && renderMultipleMedia()}\r\n {!isMulti && !selectedMedia && renderSingleMedia()}\r\n
\r\n\r\n
\r\n {selectedMedia && <>\r\n {!isDetails && }\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default MediaSelector;\r\n","export enum TrackingProvider {\r\n NONE = 'NONE',\r\n EFCOLIA = 'EFCOLIA',\r\n GPSTRACKING= 'GPSTRACKING',\r\n}\r\n","const Separator = () => (\r\n
\r\n);\r\n\r\nexport default Separator;","/* eslint-disable react/prop-types */\r\n/* eslint-disable react/display-name */\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport LibSelect, { Props as SelectProps } from 'react-select';\r\nimport colors from './../../../styles/export/colors.module.scss';\r\n\r\nexport type Props = {\r\n isDisabled: boolean;\r\n isSimple?: boolean;\r\n removeInputBorderRadius?: boolean;\r\n minWidth?: string;\r\n} & SelectProps;\r\n\r\nconst Select = React.forwardRef(({ minWidth, ...props }, ref) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n t('common.no_options')}\r\n menuPortalTarget={document.body}\r\n styles={{\r\n control: (base, state) => ({\r\n ...base,\r\n backgroundColor: props.isDisabled ? colors.whisper : colors.white,\r\n borderRadius: props.removeInputBorderRadius ? '20px 0px 0 20px !important' : '20px !important',\r\n border: props.isSimple ? '0px' : state.isFocused ? `1px solid ${colors.success}` : `1px solid ${colors.mercury}`,\r\n boxShadow: 'none',\r\n ':hover': {\r\n borderColor: state.isFocused ? colors.success : colors.mercury,\r\n },\r\n minWidth: minWidth,\r\n zIndex: 0\r\n }),\r\n menuPortal:base => ({\r\n ...base,\r\n zIndex: 999\r\n }),\r\n placeholder: base => ({\r\n ...base,\r\n color: colors.frenchGray,\r\n opacity: 0.54,\r\n }),\r\n valueContainer: base => ({\r\n ...base,\r\n padding: props.isSimple ? '5.75px 0.5rem' : '5.75px 1rem',\r\n justifyContent: props.isSimple ? 'flex-end' : 'initial',\r\n zIndex: 0\r\n }),\r\n option: (base, state) => ({\r\n ...base,\r\n color: state.isSelected ? colors.white : colors.black,\r\n backgroundColor: state.isSelected ? colors.primaryDark : colors.white,\r\n ':hover': {\r\n backgroundColor: colors.lightGrayishBlue,\r\n color: colors.black\r\n },\r\n }),\r\n singleValue: base => ({\r\n ...base,\r\n color: colors.lightblack,\r\n }),\r\n multiValueLabel: base => ({\r\n ...base,\r\n backgroundColor: colors.solitude,\r\n color: colors.black,\r\n }),\r\n multiValueRemove: base => ({\r\n ...base,\r\n backgroundColor: colors.solitude,\r\n color: colors.black,\r\n }),\r\n indicatorSeparator: base => ({\r\n ...base,\r\n width: props.isSimple? '0px' : '1px',\r\n backgroundColor: colors.mercury\r\n }),\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Select;\r\n","import Select, { Props as SelectProps } from './Select';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport { SelectValueLabelDto } from 'api/common/models/SelectValueLabelDto';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n options: SelectValueLabel[] | SelectValueLabelDto[];\r\n rules?: Exclude;\r\n isClearable?: boolean;\r\n onChangeSelect?: (data: any) => void;\r\n removeInputBorderRadius?: boolean;\r\n} & SelectProps;\r\n\r\nconst SelectController = ({ form, name, options, rules, isClearable, onChangeSelect, removeInputBorderRadius, ...props }: Props) => {\r\n return ( \r\n {\r\n return ( \r\n value.find((y: any) => y === x.value)) : []\r\n : options.find(x => String(x.value || null).toString() === String(value || null).toString()) || null}\r\n ref={ref}\r\n isClearable={isClearable}\r\n onChange={(data: SelectValueLabel | SelectValueLabel[], e: any) => {\r\n\r\n if (props.isMulti) {\r\n onChange((data as any)?.map((x: any) => x.value));\r\n } else {\r\n onChange((data as any)?.value);\r\n }\r\n\r\n if (props.onChange) {\r\n props.onChange((data as any), e);\r\n }\r\n onChangeSelect && onChangeSelect(data);\r\n }}\r\n removeInputBorderRadius={removeInputBorderRadius}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || null}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default SelectController;\r\n","import React from 'react';\r\nimport styles from './CheckBox.module.scss';\r\nimport { FaCheck } from 'react-icons/fa';\r\n\r\nexport type Props = {\r\n label?: string;\r\n round?: boolean;\r\n color?: string;\r\n} & React.DetailedHTMLProps, HTMLInputElement>;\r\n\r\nconst CheckBox = ({ label, children, round = false, color, ...props }: Props, ref: React.ForwardedRef) => {\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default React.forwardRef(CheckBox);\r\n","import React from 'react';\r\nimport Checkbox, { Props as CheckboxProps } from './CheckBox';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\n\r\ntype Props = {\r\n form: UseFormMethods; \r\n name: string;\r\n rules?: Exclude;\r\n} & CheckboxProps;\r\n\r\nconst CheckBoxController = ({ form, name, label, rules, ...props }: Props) => {\r\n \r\n return (\r\n {\r\n return (\r\n {\r\n onChange(e.target.checked); \r\n }}\r\n checked={value ? true : false}\r\n />\r\n );\r\n }}\r\n key={name}\r\n control={form.control} \r\n name={name}\r\n defaultValue={form.getValues(name) || null}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default CheckBoxController;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport DocumentTitle from 'react-document-title';\r\n\r\ninterface Props {\r\n title: string;\r\n children?: React.ReactChild | React.ReactChild[] | null;\r\n} \r\n\r\nconst ScreenTitle: React.FunctionComponent = ({ children, title }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n <>{children}\r\n \r\n );\r\n}\r\n\r\nexport default ScreenTitle;\r\n","import styled from 'styled-components';\r\n\r\nconst ScreenContainer = styled.div`\r\n padding: 1rem;\r\n`;\r\n\r\nexport default ScreenContainer;\r\n","import React from 'react';\r\nimport styles from './ScreenHeader.module.scss';\r\n\r\ntype Props = {\r\n title: string;\r\n onClickTitle?: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ScreenHeader = ({ children, title, onClickTitle, ...props }: Props) => (\r\n \r\n

{title}

\r\n
\r\n {children}\r\n
\r\n
\r\n);\r\n\r\nexport default ScreenHeader;\r\n","import React, { ReactElement } from 'react';\r\nimport styles from './Box.module.scss';\r\n\r\nexport type Props = {\r\n title?: string;\r\n subTitle?: string;\r\n renderOptions?: ReactElement;\r\n styles?: any;\r\n bodyClassName?: string;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst Box = ({ children, renderOptions, title, subTitle, bodyClassName, ...props }: Props) => (\r\n
\r\n {(title || renderOptions) &&
\r\n
\r\n
{title}
\r\n {subTitle ?
{subTitle}
: ''} \r\n
\r\n {renderOptions &&
{renderOptions}
}\r\n
}\r\n
\r\n {children}\r\n
\r\n
\r\n)\r\n\r\nexport default Box;\r\n","import { PackDto } from './../packs/models/PackDto';\r\nimport Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { CompanySearchCriteria } from './models/CompanySearchCriteria';\r\nimport { CompanyDto } from './models/CompanyDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabelDto } from 'api/common/models/SelectValueLabelDto';\r\nimport { CompanyFillInfoDto } from './models/CompanyFillInfoDto';\r\nimport { CompanyPacksDto } from './models/CompanyPacksDto';\r\n\r\n\r\nclass CompaniesService {\r\n\r\n \r\n public getList(criteria: CompanySearchCriteria) {\r\n return Http.get>('companies', criteria);\r\n }\r\n\r\n public catalog(criteria: CompanySearchCriteria) {\r\n return Http.get('companies/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('companies/' + id);\r\n }\r\n \r\n public getCurrent() {\r\n return Http.get('companies/current');\r\n }\r\n\r\n public create(model: CompanyDto, attachment: CustomFile[]) {\r\n return Http.postWithFile('companies', model, attachment);\r\n }\r\n\r\n\r\n public update(model: CompanyDto, attachment: CustomFile[]) {\r\n return Http.putWithFile('companies', model, attachment);\r\n }\r\n\r\n public updateCurrent(model: CompanyDto, attachment: CustomFile[]) {\r\n return Http.putWithFile('companies/current', model, attachment);\r\n }\r\n\r\n \r\n\r\n public validateVatNumber(model: CompanyDto) {\r\n return Http.post('companies/validate-vat-number', model);\r\n }\r\n\r\n public fillInfo(model: CompanyFillInfoDto, attachment: CustomFile[]) {\r\n return Http.putWithFile('companies/fill-info', model, attachment);\r\n }\r\n\r\n public remove(model: CompanyDto) {\r\n return Http.put('companies/deactivate', model);\r\n } \r\n\r\n public getCompanyPacksInfo(companyId: string){\r\n return Http.get('companies/packs/' + companyId)\r\n }\r\n\r\n public getPacksInfo(){\r\n return Http.get('companies/all-packs')\r\n }\r\n}\r\n\r\nexport default new CompaniesService();","import Http from '../../common/services/Http';\r\nimport { CountriesDto } from './models/CountriesDto';\r\n\r\nclass CountriesService {\r\n\r\n public catalog() {\r\n return Http.get('Countries/catalog');\r\n }\r\n \r\n}\r\n\r\nexport default new CountriesService();","\r\nimport { useTranslation } from 'react-i18next'\r\nimport React, { useEffect, useMemo, useState } from 'react'\r\nimport {\r\n DEFAULT_EMAIL_RULES_WITH_REQUIRED,\r\n DEFAULT_INPUT_RULES,\r\n DEFAULT_INPUT_RULES_WITH_REQUIRED,\r\n LOGGER_LOG_TYPE,\r\n removeAccents,\r\n} from 'Config'\r\nimport { Col, Row } from 'react-flexbox-grid'\r\nimport FormItem from 'common/components/formItem/FormItem'\r\nimport Label from 'common/components/label/Label'\r\nimport Input from 'common/components/input/Input'\r\nimport InputError from 'common/components/inputError/InputError'\r\nimport styles from './NewAccountScreen.module.scss'\r\nimport { useForm } from 'react-hook-form'\r\nimport Button from 'common/components/button/Button'\r\nimport { useHistory } from 'react-router-dom'\r\nimport Loading from 'common/services/Loading';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector'\r\nimport CustomFile from 'common/models/CustomFile'\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport Separator from 'common/components/separator/Separator';\r\nimport SelectController from 'common/components/select/SelectController'\r\nimport CheckBoxController from 'common/components/checkBox/CheckBoxController'\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle'\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer'\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader'\r\nimport Box from 'common/components/box/Box'\r\nimport { setCompanyInfo } from '../../store/authentication/action';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport Logger from 'common/services/Logger';\r\nimport { CompanyDto } from 'api/companies/models/CompanyDto'\r\nimport { CompanyFillInfoDto } from 'api/companies/models/CompanyFillInfoDto'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Reducers } from 'store/types'\r\nimport { UserProfile } from 'api/account/models/UserProfile'\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel'\r\nimport CountriesService from 'api/countries/CountriesService'\r\n\r\ntype Tab = 'company' | 'driver';\r\n\r\nconst NewAccountScreen = () => {\r\n const { t } = useTranslation()\r\n const form = useForm({ shouldUnregister: false })\r\n const [medias, setMedias] = useState([]);\r\n const [activeTab, setActiveTab] = useState('company')\r\n const [countries, setCountries] = useState([]);\r\n const { register, handleSubmit, errors, watch, clearErrors } = form;\r\n const history = useHistory();\r\n const { addToast } = useToasts();\r\n const dispatch = useDispatch();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n\r\n const trackingProvidersList = useMemo(() =>\r\n Object.keys(TrackingProvider).map(key => {\r\n const e = (TrackingProvider as any)[key];\r\n return ({ label: t('common.tracking_providers.' + e as any), value: e });\r\n })\r\n , []);\r\n\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n \r\n const coutriesData = await CountriesService.catalog();\r\n setCountries(coutriesData.map(x=> {\r\n return { value: x.name, label: (t('common.countries.' + x.name as any)) }\r\n }));\r\n\r\n const result: CompanyDto = await CompaniesService.getCurrent();\r\n form.reset(result);\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get company information `, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n\r\n const onSubmit = async (form: CompanyFillInfoDto) => {\r\n try {\r\n\r\n if (activeTab !== 'driver') {\r\n setActiveTab('driver')\r\n return;\r\n }\r\n Loading.show();\r\n\r\n // try {\r\n // await CompaniesService.validateVatNumber(form);\r\n\r\n // } catch (error) { \r\n // addToast(t('common.errors.invalid_tax_number'), { appearance: 'warning' }); \r\n // Loading.hide();\r\n // return;\r\n // }\r\n\r\n await CompaniesService.fillInfo(form, medias);\r\n if (userProfile) {\r\n userProfile.companyInfoFilled = true;\r\n }\r\n dispatch(setCompanyInfo(userProfile));\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.company_already_exists'), { appearance: 'warning' });\r\n }\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onError = async () => {\r\n addToast(t('common.errors.required_fields_empty'), { appearance: 'warning' });\r\n };\r\n\r\n const onAddMedias = (medias: CustomFile[]) => {\r\n setMedias(medias);\r\n }\r\n\r\n const onRemoveMedia = (mediaId: string) => {\r\n const filteredMedia = [...medias.filter(x => x.id != mediaId)];\r\n setMedias(filteredMedia);\r\n }\r\n\r\n const trackingProvider = form.watch('trackingProvider');\r\n\r\n useEffect(() => {\r\n clearErrors(['trackingProviderUsername', 'trackingProviderPassword']);\r\n }, [watch('trackingProvider')]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {t('common.company')}\r\n
\r\n {/*
\r\n
\r\n {t('common.manager')}\r\n
*/}\r\n
\r\n
\r\n {t('common.driver')}\r\n
\r\n
\r\n { activeTab === 'company' &&
\r\n {t('account.info_message_company')}\r\n
}\r\n { activeTab === 'driver' &&
\r\n {t('account.info_message_driver')}\r\n
}\r\n
\r\n {activeTab === 'company' && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n {trackingProvider && trackingProvider !== TrackingProvider.NONE && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {/* {activeTab === 'manager' && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } */}\r\n {activeTab === 'driver' && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n {activeTab === 'driver' && {\r\n setActiveTab('company');\r\n }}\r\n />}\r\n {/* {activeTab !== 'driver' &&
\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default NewAccountScreen\r\n","import React, { useCallback, useEffect, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { POLICIES } from 'Config';\r\nimport { Reducers } from 'store/types';\r\nimport Sidebar, { SidebarItem } from '../sidebar/Sidebar';\r\nimport styles from './AuthenticatedLayout.module.scss';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { AlertsTotalsDto } from 'api/alerts/models/AlertsTotalsDto';\r\nimport { updateTotals } from 'store/alerts/action';\r\nimport NewAccountScreen from 'screens/new_account/NewAccountScreen';\r\n\r\ntype Props = {\r\n children: React.ReactNode;\r\n}\r\n\r\ntype SidebarItemWithValidation = {\r\n policies: (keyof typeof POLICIES)[];\r\n type?: 'OR' | 'AND';\r\n} & SidebarItem;\r\n\r\nconst AuthenticatedLayout: React.FunctionComponent = ({ children }: Props) => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n const isCompanyInfoFilled = useSelector(state => state.authentication.isCompanyInfoFilled);\r\n const hasAlertsPolicy = UsersService.hasPolicies(loggedUser?.policies || [], ['SETTINGUP_ALERTS_READ']);\r\n const alertsTotals = useSelector(state => state.alerts.totals)\r\n\r\n const validateItem = useCallback((item: SidebarItemWithValidation) => {\r\n const type = item.type || 'AND';\r\n const policies = item.policies || [];\r\n let userPolicies = loggedUser?.policies || [];\r\n\r\n //se a empresa não tiver gps configurado, não vê o menu gps\r\n if (loggedUser?.trackingProvider != null && loggedUser?.trackingProvider == 'NONE') {\r\n userPolicies = loggedUser.policies.filter(x=> x != 'SETTINGUP_GPS_READ')\r\n }\r\n\r\n return UsersService.hasPolicies(userPolicies, policies, type);\r\n }, [loggedUser]);\r\n\r\n useEffect(() => {\r\n if (hasAlertsPolicy)\r\n dispatch(updateTotals());\r\n }, [])\r\n\r\n const sidebarItems: SidebarItemWithValidation[] = useMemo(() => {\r\n const items: SidebarItemWithValidation[] = [\r\n {\r\n text: t('menu.companies'),\r\n url: '/companies',\r\n policies: [\r\n 'SETTINGUP_COMPANIES_READ', 'SETTINGUP_COMPANIES_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('dashboard.title'),\r\n url: '/dashboard',\r\n policies: [\r\n 'SETTINGUP_DASHBOARDS_READ'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.vehicles_gps'),\r\n url: '/vehicles-gps',\r\n policies: [\r\n 'SETTINGUP_GPS_READ'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.vehicles'),\r\n url: '/vehicles',\r\n policies: [\r\n 'SETTINGUP_VEHICLES_READ', 'SETTINGUP_VEHICLES_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.vehicles_management'),\r\n url: '/vehicles-management',\r\n policies: [\r\n 'SETTINGUP_VEHICLES_MANAGEMENT_READ', 'SETTINGUP_VEHICLES_MANAGEMENT_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.vehicles_mileage'),\r\n url: '/vehicles-mileage',\r\n policies: [\r\n 'SETTINGUP_VEHICLES_MILEAGE_READ', 'SETTINGUP_VEHICLES_MILEAGE_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.drivers'),\r\n url: '/drivers',\r\n policies: [\r\n 'SETTINGUP_DRIVERS_READ', 'SETTINGUP_DRIVERS_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.costs'),\r\n url: '/charges',\r\n policies: [\r\n 'SETTINGUP_CHARGES_READ', 'SETTINGUP_CHARGES_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.maintenances'),\r\n url: '/maintenances',\r\n policies: [\r\n 'SETTINGUP_VEHICLE_MAINTENANCES_READ', 'SETTINGUP_VEHICLE_MAINTENANCES_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.notifications'),\r\n url: '/alerts',\r\n policies: [\r\n 'SETTINGUP_ALERTS_READ'\r\n ],\r\n type: 'OR',\r\n badgeValue: alertsTotals.totalNotReadOwn || undefined,\r\n },\r\n {\r\n text: t('menu.alarms'),\r\n url: '/alarms',\r\n policies: [\r\n 'SETTINGUP_GPS_READ'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.verifications'),\r\n url: '/verifications',\r\n policies: [\r\n 'SETTINGUP_VERIFICATIONS_READ', 'SETTINGUP_VERIFICATIONS_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.reservations'),\r\n url: '/reservations',\r\n policies: [\r\n 'SETTINGUP_RESERVATIONS_READ', 'SETTINGUP_RESERVATIONS_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.security'),\r\n url: '/security',\r\n policies: [\r\n 'SETTINGUP_USERS_READ', 'SETTINGUP_USERS_WRITE',\r\n 'SETTINGUP_ROLES_READ', 'SETTINGUP_ROLES_WRITE',\r\n 'SETTINGUP_RULES_READ', 'SETTINGUP_RULES_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n {\r\n text: t('menu.settings'),\r\n url: '/settings',\r\n policies: [\r\n 'SETTINGUP_GENERIC_TYPES_READ', 'SETTINGUP_GENERIC_TYPES_WRITE',\r\n 'SETTINGUP_VEHICLE_SEGMENTS_READ', 'SETTINGUP_VEHICLE_SEGMENTS_WRITE',\r\n 'SETTINGUP_VEHICLE_BRANDS_READ', 'SETTINGUP_VEHICLE_BRANDS_WRITE',\r\n 'SETTINGUP_VEHICLE_MODELS_READ', 'SETTINGUP_VEHICLE_MODELS_WRITE',\r\n 'SETTINGUP_SUPPLIERS_READ', 'SETTINGUP_SUPPLIERS_WRITE',\r\n 'SETTINGUP_LOCALS_READ', 'SETTINGUP_LOCALS_WRITE',\r\n 'SETTINGUP_DIAGNOSTIC_TYPES_READ', 'SETTINGUP_DIAGNOSTIC_TYPES_WRITE',\r\n 'SETTINGUP_COMMUNICATIONS_READ', 'SETTINGUP_COMMUNICATIONS_WRITE',\r\n 'SETTINGUP_NOTIFICATIONS_READ', 'SETTINGUP_NOTIFICATIONS_WRITE'\r\n ],\r\n type: 'OR',\r\n },\r\n // {\r\n // text: t('menu.import_charges'),\r\n // url: '/import-charges',\r\n // policies: [\r\n // 'SETTINGUP_IMPORT_EXPENSES_READ','SETTINGUP_IMPORT_EXPENSES_WRITE'\r\n // ],\r\n // type: 'OR',\r\n // }\r\n ];\r\n\r\n return items.filter(item => validateItem(item));\r\n }, [loggedUser, validateItem, alertsTotals]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {isCompanyInfoFilled && children}\r\n {!isCompanyInfoFilled && }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AuthenticatedLayout;\r\n"," import { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Http from '../../common/services/Http';\r\n import { LanguageDto } from './models/LanguageDto';\r\n\r\nclass LanguagesService {\r\n\r\n public getById(id: string) {\r\n return Http.get('languages/' + id);\r\n }\r\n \r\n public getAll() {\r\n return Http.get('languages/all');\r\n }\r\n\r\n\r\n public GetAllForSelectItem() {\r\n return Http.get('languages/get-All-for-select-item');\r\n }\r\n \r\n\r\n}\r\n\r\nexport default new LanguagesService();","import React from 'react';\r\nimport styles from './Tabs.module.scss';\r\n\r\nexport interface TabItem {\r\n id: string;\r\n title: string | React.ReactElement;\r\n content?: React.ReactElement;\r\n}\r\n\r\ntype Props = {\r\n items: TabItem[];\r\n activeTabId: string;\r\n onChange: (tabId: string) => void;\r\n emptyTabMessage?: string;\r\n}\r\n\r\nconst Tabs = ({ items, activeTabId, onChange, emptyTabMessage }: Props) => {\r\n const activeTab = items.find(x => x.id === activeTabId)!;\r\n return (\r\n
\r\n
\r\n {items.map(item => (\r\n { onChange(item.id); }}\r\n className={`${styles.listItem} ${activeTabId == item.id && styles.listItemActive}`}\r\n >\r\n {item.title}\r\n
\r\n ))}\r\n
\r\n {Boolean(activeTab) ?
\r\n {activeTab!.content}\r\n
\r\n :\r\n emptyTabMessage &&
\r\n
{emptyTabMessage}
\r\n
\r\n }\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default Tabs;","export enum PackTypesEnum {\r\n PREMIUM_ANNUAL = 'PREMIUM_ANNUAL',\r\n PREMIUM_MONTHLY = 'PREMIUM_MONTHLY',\r\n FREE = 'FREE',\r\n PREMIUM_WITH_GPS_MONTHLY = 'PREMIUM_WITH_GPS_MONTHLY',\r\n PREMIUM_WITH_GPS_ANNUAL = 'PREMIUM_WITH_GPS_ANNUAL'\r\n}","import React from 'react';\r\nimport Moment from 'moment';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_LANGUAGE, STORAGE } from '../../../Config';\r\nimport Storage from '../../services/Storage';\r\n\r\ntype Props = {\r\n value: string | Date;\r\n format?: string; \r\n}\r\n\r\nconst DateFormat: React.FC = ({ value, format }: Props) => {\r\n Moment.locale(Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE);\r\n return (\r\n \r\n {Moment(value).format(format??DATE_FORMAT_DEFAUT)}\r\n \r\n );\r\n}\r\n\r\nexport default DateFormat;\r\n","import React from 'react';\r\nimport styles from './Badge.module.scss';\r\n\r\nexport type BadgePreset = 'primaryLight' | 'primaryDark' | 'success' | 'danger' | 'warning' | 'inactive' | 'primaryLightInverted' | 'default' | 'primaryDark10' | 'waitingStatus' | 'greenAmerica' | 'yellowAmerica';\r\ntype BadgeSize = 'normal' | 'round';\r\n\r\ntype Props = {\r\n text?: string | React.ReactElement;\r\n preset?: BadgePreset;\r\n size?: BadgeSize;\r\n backgroundColor?: string;\r\n textColor?: string;\r\n outlineColor?: string;\r\n isSmallRound?: boolean;\r\n width?: string;\r\n} & React.DetailedHTMLProps, HTMLSpanElement>;\r\n\r\nconst Badge: React.FC = ({ children, text, preset = 'primaryLight', size = 'normal', backgroundColor, textColor, outlineColor, isSmallRound, width, ...props }: Props) => {\r\n\r\n const presetClassName = preset ? styles[preset] : '';\r\n\r\n const sizeClassName = size ? (styles as any)['size' + size[0].toUpperCase() + size.substr(1, size.length)] : styles.sizeNormal;\r\n\r\n return (\r\n \r\n {Boolean(text) && text}\r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default Badge;\r\n","import CompaniesService from 'api/companies/CompaniesService';\r\nimport { CompanyPacksDto } from 'api/companies/models/CompanyPacksDto';\r\nimport { PackTypesEnum } from 'api/packs/enums/PackTypesEnum';\r\nimport Box from 'common/components/box/Box';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport React, { memo, useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './PlansScreen.module.scss';\r\nimport { PackDto } from 'api/packs/models/PackDto';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport PlanIcon from 'assets/svg/FleetMax_logo_verde.svg';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport Button from 'common/components/button/Button';\r\nimport Storage from '../../../common/services/Storage';\r\nimport { DATE_TIME_FORMAT_DEFAUT, STORAGE } from 'Config';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\nenum ValidMonthsTypeColorEnum {\r\n VALID = '#56CF76',//green\r\n WARNING = '#E2B434', //yellow \r\n DANGER = '#DC4C4C',//red \r\n}\r\n\r\ntype Props = {\r\n companyId?: string;\r\n companyName?: string;\r\n isDetails: boolean;\r\n companyMedia?: CustomFile | null;\r\n issues: string[];\r\n}\r\n\r\nconst PlansScreen: React.FC = ({ companyId, companyName, isDetails, companyMedia, issues }: Props) => {\r\n const { t } = useTranslation();\r\n const [companyPacks, setCompanyPacks] = useState({ id: '', vehiclesCreated: 0, driversCreated: 0, adminsCreated: 0, packs: [] });\r\n const [limit, setLimit] = useState(0);\r\n\r\n const getData = async () => {\r\n const [packsInfo] = await Promise.all([\r\n CompaniesService.getCompanyPacksInfo(companyId ?? '')\r\n ]);\r\n\r\n //TEMPORARY\r\n setCompanyPacks(packsInfo);\r\n\r\n\r\n if (packsInfo.packs && packsInfo.packs.filter(x => x.active).length > 0) {\r\n\r\n\r\n const groups = groupByPacks(packsInfo.packs.filter(x => x.active), (item: PackDto) => item.group); //agrupar packs por group\r\n const keys = Array.from(groups.keys());\r\n //const key = keys.sort((a, b) => a - b)[0]; //ordernar pelo group mais baixo ou seja prioritário\r\n setLimit(packsInfo.packs.filter(x => (x.validDays > 0|| x.validMonths > 0 || x.validYears > 0) && x.active === true).map(x => x.limit).sum());\r\n }\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n const groupByPacks = (list: Array, keyGetter: (item: PackDto) => number) => {\r\n const map = new Map();\r\n list.forEach(item => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n map.set(key, [item]);\r\n } else {\r\n collection.push(item);\r\n }\r\n });\r\n return map;\r\n }\r\n\r\n\r\n\r\n\r\n const renderIssues = (issues: string[]) => {\r\n return issues.length ? (\r\n\r\n \r\n \r\n {issues.map((x, i) => { return })}\r\n \r\n \r\n\r\n ) : null\r\n }\r\n const badgeText = (plan: PackDto) => {\r\n if (plan.validYears > 0) {\r\n return t('plans.valid_by_x_years_months').replace('@years', plan.validYears.toString()).replace('@months', plan.validMonths.toString())\r\n }\r\n if (plan.validYears === 0 && plan.validMonths > 2) {\r\n return t('plans.valid_by_x_months').replace('@months', plan.validMonths.toString())\r\n }\r\n if (plan.validMonths > 0 && plan.validMonths < 3) {\r\n return t('plans.expire_in_x_days').replace('@days', plan.validDays.toString())\r\n }\r\n if (plan.validMonths === 0 && plan.validDays > 0) {\r\n return t('plans.expire_in_x_days').replace('@days', plan.validDays.toString())\r\n }\r\n if (plan.validDays <= 0) {\r\n return t('plans.expired')\r\n }\r\n\r\n return '';\r\n }\r\n return (\r\n \r\n {issues && issues.length > 0 && renderIssues(issues)}\r\n {(companyName) && \r\n \r\n \r\n \r\n \r\n \r\n \r\n {companyMedia && \r\n \r\n }\r\n }\r\n \r\n \r\n\r\n {companyPacks.packs?.map((plan: PackDto, key: number) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('plans.plans_types.' + plan.type as any)}\r\n \r\n \r\n   |  \r\n {plan.limit} {t('plans.vehicles')}\r\n \r\n \r\n \r\n \r\n
\r\n {plan.type !== PackTypesEnum.FREE && plan.active && 2 ? ValidMonthsTypeColorEnum.VALID : (plan.validDays > 0) ? ValidMonthsTypeColorEnum.WARNING : ValidMonthsTypeColorEnum.DANGER}\r\n >\r\n {badgeText(plan)}\r\n \r\n }\r\n\r\n {!plan.active && \r\n {t('plans.disabled')}\r\n \r\n }\r\n {plan.type !== PackTypesEnum.FREE && (plan.active || (plan.validDays > 0)) && {t('plans.valid_until')}: {}}\r\n {plan.type !== PackTypesEnum.FREE && (!plan.active && (plan.validDays <= 0)) && {t('plans.expired_on_day')}: {}}\r\n
\r\n\r\n \r\n
\r\n )\r\n })}\r\n\r\n {\r\n (!companyPacks || !companyPacks.packs.length) &&
\r\n {t('plans.without_plans')}\r\n
\r\n }\r\n\r\n \r\n \r\n
\r\n \r\n \r\n {t('plans.active_plans')}\r\n \r\n \r\n \r\n \r\n {t('plans.admins')}\r\n \r\n \r\n x.type == PackTypesEnum.FREE) ? t('plans.number_admins_available') : t('plans.number_admins_created')}>\r\n {companyPacks.adminsCreated}\r\n {!!companyPacks.packs.every(x => x.type == PackTypesEnum.FREE) && / 1}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('plans.vehicles')}\r\n \r\n \r\n {\r\n (!companyPacks || !companyPacks.packs.length) &&\r\n {companyPacks.vehiclesCreated}\r\n }\r\n {\r\n (companyPacks && companyPacks.packs.length > 0) &&\r\n {companyPacks.vehiclesCreated} / {limit}\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {t('plans.conductors')}\r\n \r\n \r\n x.type == PackTypesEnum.FREE) ? t('plans.number_drivers_available') : t('plans.number_drivers_created')}>\r\n {companyPacks.driversCreated}\r\n {!!companyPacks.packs.every(x => x.type == PackTypesEnum.FREE) && / 1}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n const profile = Storage.getObject(STORAGE.AUTH_USER_PROFILE);\r\n\r\n const url = profile && profile.languageCode === 'fr' ? 'fr/tarifs' :\r\n profile && profile.languageCode === 'pt' ? 'pt/planos' :\r\n 'eu/plans'\r\n window.open(\r\n `https://fleetmax.${url}`\r\n )\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n );\r\n}\r\n\r\nexport default memo(PlansScreen);","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { UpdateUserDto } from 'api/users/models/UpdateUserDto';\r\nimport Loading from 'common/services/Loading';\r\nimport UsersService from 'api/users/UsersService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { useForm } from 'react-hook-form';\r\nimport { DEFAULT_EMAIL_RULES_WITH_REQUIRED, DEFAULT_INPUT_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, STORAGE, removeAccents } from 'Config';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { CheckAvailabilityDto } from 'api/common/models/CheckAvailabilityDto';\r\nimport styles from './AccountScreen.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector';\r\nimport { Reducers } from 'store/types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { setProfile, updateRefreshToken } from 'store/authentication/action';\r\nimport { useParams } from 'react-router-dom';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport Utils from 'common/services/Utils';\r\nimport authService from '../../common/services/AuthorizeService';\r\nimport { ApplicationPaths } from '../../Config';\r\nimport LanguagesService from 'api/languages/LanguagesService';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport Separator from 'common/components/separator/Separator';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport Box from 'common/components/box/Box';\r\nimport PlansScreen from './components/PlansScreen';\r\nimport Storage from 'common/services/Storage';\r\nimport i18n from 'common/services/I18n';\r\nimport { CompanyDto } from 'api/companies/models/CompanyDto';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport CountriesService from 'api/countries/CountriesService';\r\n\r\n\r\nconst AccountScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { type, tabid } = useParams<{ type: string, tabid: string }>();\r\n const [user, setUser] = useState();\r\n const [company, setCompany] = useState();\r\n const [username, setUsername] = useState('');\r\n const formUser = useForm({ shouldUnregister: false });\r\n const formCompany = useForm({ shouldUnregister: false });\r\n\r\n const [isDetails, setIsDetails] = useState(type == 'details');\r\n const [mediaFile, setMediaFile] = useState(null);\r\n const [medias, setMedias] = useState([]);\r\n const [removeMedia, setRemoveMedia] = useState(false);\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n const [languages, setLanguages] = useState([]);\r\n const [tabId, setTabId] = useState(tabid ? tabid : 'account')\r\n const [countries, setCountries] = useState([]);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCompaniesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_MY_COMPANY_WRITE']);\r\n const [vatDisabled, setVatIsDisabled] = useState(false);\r\n const [changePassword, setChangePassword] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const onCancel = () => {\r\n setIsDetails(true);\r\n setChangePassword(false);\r\n getData();\r\n };\r\n\r\n const config2FA = async () => {\r\n const isAuthenticated = await authService.isAuthenticated();\r\n if (isAuthenticated) {\r\n window.location.replace(ApplicationPaths.IdentityTwoFactorAuthenticationPath)\r\n }\r\n }\r\n\r\n const onChangePassword = () => {\r\n setChangePassword(!changePassword);\r\n if(changePassword){\r\n formUser.setValue('newPassword', undefined);\r\n formUser.setValue('confirmPassword', undefined);\r\n }\r\n };\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const [\r\n user,\r\n langs,\r\n company\r\n ] = await Promise.all([\r\n UsersService.getLoggedUser(),\r\n LanguagesService.GetAllForSelectItem(),\r\n CompaniesService.getCurrent()\r\n ]);\r\n\r\n setUser(user);\r\n setUsername(user.realName);\r\n formUser.reset(user);\r\n setLanguages(langs)\r\n setCompany(company);\r\n setVatIsDisabled(!!company && !!company.taxNumber);\r\n\r\n const coutriesData = await CountriesService.catalog();\r\n setCountries(coutriesData.map(x=> {\r\n return { value: x.name, label: (t('common.countries.' + x.name as any)) }\r\n }));\r\n\r\n formCompany.reset(company);\r\n\r\n\r\n }\r\n catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get user info`,\r\n error\r\n );\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (Utils.isStringNullOrEmpty(formUser.watch('newPassword') ?? '')) {\r\n formUser.clearErrors();\r\n }\r\n }, [formUser.watch('newPassword')]);\r\n\r\n const onSubmitUser = async (formData: UpdateUserDto) => {\r\n if (user) {\r\n try {\r\n\r\n Loading.show();\r\n\r\n if (formData.newPassword && formData.newPassword !== formData.confirmPassword) {\r\n addToast(t('account.passwords_doesnt_match'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n const emailData: CheckAvailabilityDto = { table: 'asp_net_users', column: 'normalized_email', value: formData.email.toLocaleUpperCase(), companyId: true, itemEdit: loggedUser?.id };\r\n if (!await UsersService.checkAvailability(emailData)) {\r\n addToast(t('common.messages.email_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n emailData.companyId = false;\r\n const checkAvailabilityEmailAllEntities = await UsersService.checkAvailability(emailData);\r\n if (!checkAvailabilityEmailAllEntities) {\r\n addToast(t('common.messages.email_already_exists_all_entities'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n user.realName = formData.realName;\r\n user.email = formData.email;\r\n user.newPassword = formData.newPassword;\r\n user.removeMedia = removeMedia;\r\n user.languageId = formData.languageId;\r\n user.phoneNumber = formData.phoneNumber;\r\n user.address = formData.address;\r\n user.zipcode = formData.zipcode;\r\n user.country = formData.country;\r\n\r\n await UsersService.updateAccount(user, mediaFile);\r\n\r\n const lang = languages.find(x => x.value == user.languageId);\r\n if (lang) {\r\n Storage.set(STORAGE.CURRENT_LOCALE, lang.label);\r\n i18n.changeLanguage(lang.label);\r\n\r\n const profile = Storage.getObject(STORAGE.AUTH_USER_PROFILE);\r\n profile.languageCode = lang.label;\r\n Storage.setObject(STORAGE.AUTH_USER_PROFILE, profile);\r\n\r\n dispatch(setProfile(profile));\r\n }\r\n\r\n\r\n\r\n user.newPassword = undefined;\r\n formUser.setValue('newPassword', undefined);\r\n formUser.setValue('confirmPassword', undefined);\r\n\r\n dispatch(updateRefreshToken());\r\n\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n onCancel();\r\n setChangePassword(false);\r\n\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update user`,\r\n error\r\n );\r\n\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n\r\n const onSubmitCompany = async (form: CompanyDto) => {\r\n try {\r\n Loading.show();\r\n\r\n if (company) {\r\n company.name = form.name;\r\n if (!vatDisabled) {\r\n company.taxNumber = form.taxNumber;\r\n }\r\n company.email = form.email;\r\n company.phone = form.phone;\r\n company.website = form.website;\r\n company.addressLine = form.addressLine;\r\n company.zipCode = form.zipCode;\r\n company.city = form.city;\r\n company.country = form.country;\r\n company.removeAttachment = company.logoId && medias.length === 0 ? true : false;\r\n company.trackingProvider = form.trackingProvider;\r\n company.trackingProviderUsername = form.trackingProviderUsername;\r\n company.trackingProviderPassword = form.trackingProviderPassword;\r\n await CompaniesService.updateCurrent(company, medias);\r\n if (!vatDisabled) {\r\n setVatIsDisabled(!!company && !!company.taxNumber);\r\n }\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't update the company with id: ${form.id}`, error);\r\n Loading.hide();\r\n }\r\n }\r\n\r\n\r\n\r\n const onAddAvatar = (files: CustomFile[]) => {\r\n if (files.length > 0) {\r\n setMediaFile(files[0]);\r\n }\r\n }\r\n\r\n const onRemoveAvatar = () => {\r\n setRemoveMedia(true);\r\n if (user) {\r\n setUser({\r\n ...user,\r\n media: null,\r\n });\r\n }\r\n }\r\n\r\n const onAddMedias = (medias: CustomFile[]) => {\r\n setMedias(medias);\r\n }\r\n\r\n const onRemoveMedia = (mediaId: string) => {\r\n const filteredMedia = [...medias.filter(x => x.id != mediaId)];\r\n setMedias(filteredMedia);\r\n }\r\n\r\n\r\n const packsTab = () => (\r\n \r\n )\r\n\r\n const accountTab = () => (\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n {username}\r\n
\r\n\r\n {/* \r\n
\r\n
\r\n \r\n
\r\n {username}\r\n
*/}\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n setUsername(e.target.value as any)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n { return { ...x, label: x.fullLabel ?? '' } }) : []}\r\n placeholder={t('users.language')}\r\n rules={{ required: false }}\r\n isDisabled={isDetails}\r\n />\r\n \r\n \r\n\r\n {!isDetails && changePassword && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {formUser.watch('newPassword') && (\r\n \r\n \r\n \r\n value === formUser.watch('newPassword') ||\r\n t('common.errors.password_not_match'),*/\r\n })}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n\r\n
\r\n {!isDetails && (\r\n onCancel()}\r\n />\r\n )}\r\n\r\n {!isDetails && (\r\n onChangePassword()}\r\n />\r\n )}\r\n\r\n {isDetails && (\r\n setIsDetails(false)}\r\n />\r\n )}\r\n {isDetails && (\r\n config2FA()}\r\n />\r\n )}\r\n {!isDetails &&
\r\n \r\n
\r\n )\r\n\r\n\r\n\r\n const companyTab = () => (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {!isDetails && (\r\n onCancel()}\r\n />\r\n )}\r\n\r\n {isDetails && hasCompaniesWritePolicy && (\r\n setIsDetails(false)}\r\n />\r\n )}\r\n\r\n {!isDetails && hasCompaniesWritePolicy &&
\r\n
\r\n
\r\n );\r\n\r\n const tabs: TabItem[] = [\r\n {\r\n id: 'account',\r\n title: t('account.my_account'),\r\n content: accountTab()\r\n },\r\n {\r\n id: 'company',\r\n title: t('account.company'),\r\n content: companyTab()\r\n },\r\n {\r\n id: 'subscription',\r\n title: t('account.plans'),\r\n content: packsTab()\r\n }\r\n ];\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n { setTabId(tId) }} />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AccountScreen;","import Sidebar from 'common/layouts/sidebar/Sidebar';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport styles from './NotFoundScreen.module.scss';\r\n\r\nconst NotFoundScreen: React.FC = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

404 - {t('common.errors.page_not_found')}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default NotFoundScreen;\r\n","import React from 'react';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport NumberFormat, { NumberFormatProps } from 'react-number-format';\r\n\r\ntype Props = {\r\n tooltip?: string;\r\n} & NumberFormatProps;\r\n\r\nconst MoneyFormat: React.FC = ({ value, suffix, tooltip, ...props }: Props) => {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default MoneyFormat;\r\n","import { Link } from 'react-router-dom';\r\n\r\ntype Props = {\r\n children: any;\r\n href: any\r\n}\r\n\r\nconst HReafWrap: React.FC = ({ children, href }: Props) => {\r\n return href\r\n ? {children}\r\n : children;\r\n}\r\n\r\nexport default HReafWrap;\r\n","import { CSSProperties, ReactElement, useState } from 'react';\r\nimport styles from './ListingTable.module.scss';\r\nimport { Property } from 'csstype'\r\nimport DateFormat from '../dateFormat/dateFormat';\r\nimport { useTranslation } from 'react-i18next';\r\nimport MoneyFormat from '../moneyFormat/MoneyFormat';\r\nimport { isTablet } from 'Config';\r\nimport { FaAngleDown, FaAngleUp, FaSort } from 'react-icons/fa';\r\nimport { FaSortDown } from 'react-icons/fa';\r\nimport { FaSortUp } from 'react-icons/fa';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport { IconType } from 'react-icons';\r\nimport React from 'react';\r\nimport HReafWrap from './hRefWrap/HRefWrap';\r\n\r\nconst SUBROWS_COLUMN_WIDTH = '10px';\r\n\r\nexport interface TableRow {\r\n [field: string]: any;\r\n}\r\n\r\nexport type ListingTableCellFormat = 'default' | 'money' | 'date';\r\n\r\nexport interface ListingTableColumn {\r\n field?: keyof TRow;\r\n name?: string | ReactElement;\r\n renderCell?: (row: TRow, column: ListingTableColumn, index: number, parentRow?: TParentRow, parentRowIndex?: number) => ReactElement;\r\n cellAlignment?: Property.TextAlign;\r\n cellStyle?: CSSProperties;\r\n columnCellClassName?: string;\r\n columnCellAlignment?: Property.TextAlign;\r\n width?: string | number;\r\n preventClick?: boolean;\r\n cellFormat?: ListingTableCellFormat;\r\n cellFormatUnitByField?: string;\r\n hideOn?: string[]; //'sm','md','lg','xl'\r\n onSearch?: (field: string, isFilterAsc: boolean) => void;\r\n searchField?: string;\r\n onlyImageColumn?: boolean;\r\n}\r\n\r\ninterface Props {\r\n columns: ListingTableColumn[];\r\n subColumns?: ListingTableColumn[];\r\n rows: TRow[];\r\n allowHover?: boolean;\r\n onRowClick?: (row: TRow, index: number, event: any) => void;\r\n onHref?: (row: TRow) => string;\r\n onSubRowClick?: (row: TSubRow, index: number, event: any) => void;\r\n striped?: boolean;\r\n selectedRow?: TRow | null;\r\n initialSearch?: SearchItem | null;\r\n showErrors?: boolean;\r\n errors?: any[];\r\n rowStyle?: (row: TRow, col: ListingTableColumn, rowIndex: number, colIndex: number) => CSSProperties;\r\n subRowStyle?: (row: TSubRow, col: ListingTableColumn, rowIndex: number, colIndex: number) => CSSProperties;\r\n className?: string;\r\n headerClassName?: string;\r\n hideHeaderWhenNoData?: boolean;\r\n isExpanded?: (row: TRow) => boolean;\r\n onLoadSubRows?: (row: TRow) => TSubRow[];\r\n colorRow?: string;\r\n colorSubRow?: string;\r\n hasSubRows?: boolean;\r\n onSubRowsLoadMore?: (row: TRow, index: number) => void;\r\n canSubRowsLoadMore?: (row: TRow, index: number) => boolean;\r\n labelSubRowWithoutResults?: string;\r\n allowSubRowHover?: boolean;\r\n}\r\n\r\nexport interface SearchItem {\r\n colField: string;\r\n isOrderAsc: boolean;\r\n}\r\n\r\nconst ListingTable = ({\r\n columns, subColumns, rows, selectedRow, allowHover = false, striped = false, className, headerClassName,\r\n initialSearch = null, showErrors = false, errors = [], onRowClick, onHref,onSubRowClick, rowStyle, subRowStyle, hideHeaderWhenNoData, isExpanded,\r\n onLoadSubRows, colorRow, colorSubRow, hasSubRows, onSubRowsLoadMore, canSubRowsLoadMore, labelSubRowWithoutResults, allowSubRowHover = false\r\n}: Props) => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const getCellWidthStyle = (col: ListingTableColumn) => {\r\n if (!col.width) {\r\n return {};\r\n }\r\n\r\n return { width: col.width };\r\n }\r\n\r\n const getSubCellWidthStyle = (col: ListingTableColumn) => {\r\n if (!col.width) {\r\n return {};\r\n }\r\n\r\n return { width: col.width };\r\n }\r\n\r\n const getColumnCellStyle = (col: ListingTableColumn) => {\r\n return {\r\n textAlign: col.columnCellAlignment || 'left',\r\n ...getCellWidthStyle(col),\r\n }\r\n }\r\n\r\n const getRowCellStyle = (col: ListingTableColumn, row: TRow, rowIndex: number, colIndex: number): CSSProperties => {\r\n return {\r\n textAlign: col.cellAlignment || 'left',\r\n ...getCellWidthStyle(col),\r\n ...(col.cellStyle || {}),\r\n ...(rowStyle ? rowStyle(row, col, rowIndex, colIndex) : {}),\r\n }\r\n }\r\n\r\n const getSubRowCellStyle = (col: ListingTableColumn, row: TSubRow, rowIndex: number, colIndex: number): CSSProperties => {\r\n return {\r\n textAlign: col.cellAlignment || 'left',\r\n ...getSubCellWidthStyle(col),\r\n ...(col.cellStyle || {}),\r\n ...(subRowStyle ? subRowStyle(row, col, rowIndex, colIndex) : {}),\r\n }\r\n }\r\n\r\n const getRowCellValue = (row: TRow, col: ListingTableColumn, index: number) => {\r\n\r\n if (col.renderCell) {\r\n return col.renderCell(row, col, index);\r\n }\r\n\r\n if (!col.field) {\r\n return '';\r\n }\r\n\r\n const value = row[col.field];\r\n\r\n if (col.cellFormat && col.cellFormat === 'money') {\r\n return ;\r\n }\r\n\r\n if (col.cellFormat && col.cellFormat === 'date') {\r\n return ;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n const getSubRowCellValue = (row: TSubRow, col: ListingTableColumn, index: number, parentRow: TRow, parentRowIndex: number) => {\r\n\r\n if (col.renderCell) {\r\n return col.renderCell(row, col, index, parentRow, parentRowIndex);\r\n }\r\n\r\n if (!col.field) {\r\n return '';\r\n }\r\n\r\n const value = row[col.field];\r\n\r\n if (col.cellFormat && col.cellFormat === 'money') {\r\n return ;\r\n }\r\n\r\n if (col.cellFormat && col.cellFormat === 'date') {\r\n return ;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n const onClick = (event: any, row: TRow, col: ListingTableColumn, index: number) => {\r\n if (col.preventClick) {\r\n return;\r\n }\r\n\r\n if (onRowClick) {\r\n onRowClick(row, index, event);\r\n }\r\n }\r\n\r\n const onSubClick = (event: any, row: TSubRow, col: ListingTableColumn, index: number) => {\r\n if (col.preventClick) {\r\n return;\r\n }\r\n\r\n if (onSubRowClick) {\r\n onSubRowClick(row, index, event);\r\n }\r\n }\r\n\r\n const onSearch = (col: ListingTableColumn) => {\r\n if (col.onSearch) {\r\n if (!isSearchActive) {\r\n col.onSearch(col.searchField ?? '', true);\r\n setIsSearchActive({ colField: col.searchField ?? '', isOrderAsc: true });\r\n } else {\r\n col.onSearch(col.searchField ?? '', isSearchActive.colField === col.searchField ? !isSearchActive.isOrderAsc : true);\r\n setIsSearchActive({ colField: col.searchField ?? '', isOrderAsc: isSearchActive.colField === col.searchField ? !isSearchActive.isOrderAsc : true });\r\n }\r\n }\r\n }\r\n\r\n const [isSearchActive, setIsSearchActive] = useState(initialSearch);\r\n\r\n const isMobile = isTablet(window.innerWidth);\r\n\r\n const renderActiveFilterIcon = () => {\r\n return
\r\n {isSearchActive && !isSearchActive.isOrderAsc && }\r\n {isSearchActive && isSearchActive.isOrderAsc && }\r\n
\r\n }\r\n\r\n const renderHasFilterIcon = (col: ListingTableColumn) => {\r\n return
\r\n {col.onSearch && }\r\n
\r\n }\r\n\r\n const renderRowArrow = (Icon: IconType, rowIndex: number, row: TRow) => (\r\n onRowClick && onRowClick(row, rowIndex, event)}\r\n >\r\n \r\n \r\n );\r\n\r\n const renderRow = (row: TRow, rowIndex: number) => (\r\n \r\n\r\n {hasSubRows && (isExpanded && isExpanded(row) ? renderRowArrow(FaAngleUp, rowIndex, row) : renderRowArrow(FaAngleDown, rowIndex, row))}\r\n {columns.map((col, colIndex) => (\r\n onClick(event, row, col, rowIndex)}\r\n className={`${col.hideOn && col.hideOn?.includes('xxl') ? styles.xxl : col.hideOn?.includes('xl') ? styles.xl : col.hideOn && col.hideOn?.includes('lg') ?\r\n styles.lg : col.hideOn && col.hideOn?.includes('md') ? styles.md : col.hideOn && col.hideOn?.includes('sm') ?\r\n styles.sm : ''}\r\n ${col.onlyImageColumn ? styles.bodyColumnOnlyImage : styles.bodyColumn} ${striped && rowIndex % 2 === 0 ? styles.striped : ''}\r\n ${isMobile ? styles.mobile : ''}`}\r\n\r\n style={getRowCellStyle(col, row, rowIndex, colIndex)}\r\n >\r\n {!col.preventClick && {getRowCellValue(row, col, rowIndex)} }\r\n {col.preventClick && getRowCellValue(row, col, rowIndex) }\r\n \r\n\r\n ))}\r\n\r\n \r\n );\r\n\r\n const renderSubRow = (row: TSubRow, rowIndex: number, parentRow: TRow, parentRowIndex: number) => (\r\n \r\n {hasSubRows && ()}\r\n {(subColumns || []).map((col, colIndex) => (\r\n onSubClick(event, row, col, rowIndex)}\r\n className={` ${col.hideOn && col.hideOn?.includes('xxl') ? styles.xxl : col.hideOn?.includes('xl') ? styles.xl : col.hideOn && col.hideOn?.includes('lg') ?\r\n styles.lg : col.hideOn && col.hideOn?.includes('md') ? styles.md : col.hideOn && col.hideOn?.includes('sm') ?\r\n styles.sm : ''}\r\n ${styles.bodySubColumn} ${striped && rowIndex % 2 === 0 ? styles.striped : ''}\r\n\r\n ${isMobile ? styles.mobile : ''}`}\r\n style={getSubRowCellStyle(col, row, rowIndex, colIndex)}\r\n >\r\n {getSubRowCellValue(row, col, rowIndex, parentRow, parentRowIndex)}\r\n \r\n ))}\r\n \r\n );\r\n\r\n const renderSubRowLoadMore = (row: TRow, rowIndex: number) => (\r\n \r\n {\r\n if (onSubRowsLoadMore) {\r\n onSubRowsLoadMore(row, rowIndex)\r\n }\r\n }}\r\n className={`${row.onlyImageColumn ? styles.bodyColumnOnlyImage : styles.bodyColumn} ${striped && rowIndex % 2 === 0 ? styles.striped : ''} ${isMobile ? styles.mobile : ''} ${styles.loadMoreRow}`}\r\n >\r\n {t('common.load_more')}\r\n \r\n \r\n )\r\n\r\n const renderSubRowWithoutResults = (row: TRow, rowIndex: number) => (\r\n \r\n \r\n {labelSubRowWithoutResults ? labelSubRowWithoutResults : t('common.no_results')}\r\n \r\n \r\n )\r\n\r\n return (\r\n \r\n {(Boolean(rows.length > 0) || (Boolean(rows.length <= 0) && !hideHeaderWhenNoData)) && \r\n \r\n {hasSubRows && (\r\n )}\r\n {columns.map((col, colIndex) => (\r\n \r\n ))}\r\n \r\n }\r\n \r\n {rows.map((row, rowIndex) => {\r\n const subrows = onLoadSubRows ? onLoadSubRows(row) : null;\r\n const subRowsLoadMore = canSubRowsLoadMore && canSubRowsLoadMore(row, rowIndex);\r\n return (\r\n (\r\n {renderRow(row, rowIndex)}\r\n {isExpanded && isExpanded(row) && subrows && <>\r\n {subrows.map((subrow, subrowIndex) => renderSubRow(subrow, subrowIndex, row, rowIndex))}\r\n {subRowsLoadMore && renderSubRowLoadMore(row, rowIndex)}\r\n }\r\n {isExpanded && isExpanded(row) && subrows?.length == 0 && renderSubRowWithoutResults(row, rowIndex)}\r\n )\r\n );\r\n })}\r\n \r\n {Boolean(rows.length <= 0) && \r\n \r\n \r\n \r\n }\r\n
onSearch(col)}>\r\n \r\n {col.name} {isSearchActive && isSearchActive.colField === col.searchField ? renderActiveFilterIcon() : renderHasFilterIcon(col)}\r\n \r\n
\r\n {t('common.no_results')}\r\n
\r\n );\r\n}\r\n\r\nexport default ListingTable;","export default __webpack_public_path__ + \"static/media/desktop_filtres.ffaeec0b.svg\";","export default __webpack_public_path__ + \"static/media/car.c5350059.svg\";","export default __webpack_public_path__ + \"static/media/coins.1100a0ca.svg\";","export default __webpack_public_path__ + \"static/media/coins_black.8a3feb33.svg\";","export default __webpack_public_path__ + \"static/media/media.21be330a.svg\";","export default __webpack_public_path__ + \"static/media/Grupo_352.e65d64b0.svg\";","export default __webpack_public_path__ + \"static/media/cone_black.a9baf70b.svg\";","export default __webpack_public_path__ + \"static/media/gauge.4392cf3b.svg\";","export default __webpack_public_path__ + \"static/media/euro.d2939f7a.svg\";","export default __webpack_public_path__ + \"static/media/ticket.cd9c675a.svg\";","export default __webpack_public_path__ + \"static/media/floor-brush.bf0ca454.svg\";","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { VehicleConsumptionsResultDto, VehicleCounterListDto, VehicleDto, VehicleMileageCounterListDto } from './models/VehicleDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { VehicleMonthlyCostsDto } from 'api/vehicleMonthlyCosts/models/VehicleMonthlyCostsDto';\r\nimport { VehiclesSearchCriteria } from './models/VehiclesSearchCriteria';\r\nimport { VehicleConsumptionSearchCriteria } from './models/VehicleConsumptionSearchCriteria';\r\nimport { VehicleMonthlyCostsSearchCriteria } from 'api/vehicleMonthlyCosts/models/VehicleMonthlyCostsSearchCriteria';\r\nimport { CatalogMaintenanceContractsSearchCriteria } from 'api/catalog/models/CatalogMaintenanceContractsSearchCriteria';\r\n\r\nclass VehiclesService {\r\n\r\n public getList(criteria: VehiclesSearchCriteria) {\r\n return Http.get>('vehicles', criteria);\r\n }\r\n\r\n public getExpensesTotalsReport(criteria: VehiclesSearchCriteria) {\r\n return Http.getWithConfig(`vehicles/get-expenses-total-report`, criteria, { responseType: 'blob' });\r\n }\r\n\r\n public getExpensesDetailsReport(criteria: VehiclesSearchCriteria) {\r\n return Http.getWithConfig(`vehicles/get-expenses-details-report`, criteria, { responseType: 'blob' });\r\n }\r\n\r\n public getVehiclesDetailsReport(criteria: VehiclesSearchCriteria) {\r\n return Http.getWithConfig(`vehicles/get-vehicles-details-report`, { ...criteria, isToExcel: true }, { responseType: 'blob' });\r\n }\r\n\r\n public getVehiclesMileageReport(criteria: VehiclesSearchCriteria) {\r\n return Http.getWithConfig(`vehicles/get-vehicles-mileage-report`, { ...criteria, isToExcel: true }, { responseType: 'blob' });\r\n }\r\n\r\n public catalog(vehicleId?: string) {\r\n return Http.get(`vehicles/catalog` + (vehicleId ? ('/' + vehicleId) : ''));\r\n }\r\n\r\n public catalogWithDeleted() {\r\n return Http.get(`vehicles/catalog-with-deleted`);\r\n }\r\n\r\n public catalogByCharges() {\r\n return Http.get(`vehicles/catalog-by-charges`);\r\n }\r\n\r\n public catalogByMaintenances() {\r\n return Http.get(`vehicles/catalog-by-maintenances`);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('vehicles/' + id);\r\n }\r\n\r\n public create(model: VehicleDto, photo?: CustomFile[]) {\r\n return Http.postWithFile('vehicles', model, photo ? photo : []);\r\n }\r\n\r\n public update(model: VehicleDto, photo?: CustomFile[]) {\r\n return Http.putWithFile('vehicles', model, photo ? photo : []);\r\n }\r\n\r\n public remove(model: VehicleDto) {\r\n return Http.put('vehicles/deactivate', model);\r\n }\r\n\r\n public activate(model: VehicleDto) {\r\n return Http.put('vehicles/activate', model);\r\n }\r\n\r\n public getFuelList() {\r\n return Http.get('vehicles/getFuelList');\r\n }\r\n\r\n public getColorsList() {\r\n return Http.get('vehicles/getColorsList');\r\n }\r\n\r\n public getConsumptionCounters(criteria: VehicleConsumptionSearchCriteria) {\r\n return Http.get('vehicles/consumption-counters', criteria);\r\n }\r\n\r\n public getCountersList(criteria: VehiclesSearchCriteria) {\r\n return Http.get('vehicles/counters-list', criteria);\r\n }\r\n\r\n public getMileageCountersList(criteria: VehiclesSearchCriteria) {\r\n return Http.get('vehicles/mileage-counters-list', criteria);\r\n }\r\n \r\n public getMonthlyCosts(criteria: VehicleMonthlyCostsSearchCriteria) {\r\n return Http.get>('vehicles/monthly-costs', criteria);\r\n }\r\n\r\n public getByMaintenanceContractId(criteria?: CatalogMaintenanceContractsSearchCriteria) {\r\n return Http.get('vehicles/get-by-maintenance-contract-id', criteria);\r\n }\r\n\r\n public getCarCurrentDriver(id: string) {\r\n return Http.get('vehicles/get-car-current-driver/' + id);\r\n }\r\n\r\n public candAddVehicles() {\r\n return Http.get('vehicles/can-add-vehicles');\r\n }\r\n \r\n public companyHaveVehicles() {\r\n return Http.get('vehicles/company-have-vehicles');\r\n }\r\n \r\n public getVehicleSegmentFeatures(id: string) {\r\n return Http.get('vehicles/getSegmentFeatures/' + id);\r\n }\r\n}\r\n\r\nexport default new VehiclesService();","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { VehicleSegmentSearchCriteria } from './models/VehicleSegmentSearchCriteria';\r\nimport { VehicleSegmentDto } from './models/VehicleSegmentDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogSegmentsSearchCriteria } from 'api/catalog/models/CatalogSegmentsSearchCriteria';\r\n\r\nclass VehicleSegmentsService {\r\n\r\n public getList(criteria: VehicleSegmentSearchCriteria) {\r\n return Http.get>('vehiclesegments', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogSegmentsSearchCriteria) {\r\n return Http.get('vehiclesegments/catalog', criteria);\r\n }\r\n\r\n public getFeatures(id: string) {\r\n return Http.get('vehiclesegments/' + id + '/features');\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('vehiclesegments/' + id);\r\n }\r\n\r\n public create(model: VehicleSegmentDto) {\r\n return Http.post('vehiclesegments', model);\r\n }\r\n\r\n public update(model: VehicleSegmentDto) {\r\n return Http.put('vehiclesegments', model);\r\n }\r\n\r\n public remove(model: VehicleSegmentDto) {\r\n return Http.put('vehiclesegments/deactivate', model);\r\n }\r\n\r\n}\r\n\r\nexport default new VehicleSegmentsService();","/* eslint-disable react/display-name */\r\nimport React from 'react';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport DatePicker, { registerLocale, ReactDatePickerProps as DateProps } from 'react-datepicker';\r\nimport styles from './DateTimePicker.module.scss'\r\nimport { fr, pt, enGB } from 'date-fns/locale';\r\nimport { DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport Storage from '../../services/Storage';\r\nregisterLocale('fr', fr) \r\nregisterLocale('pt', pt)\r\nregisterLocale('enGB', enGB)\r\n\r\nexport type Props = {\r\n} & DateProps;\r\n\r\n\r\n\r\nconst DateTimePicker = React.forwardRef(({ ...props }, ref) => {\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default DateTimePicker;\r\n","/* eslint-disable react/display-name */\r\n/* eslint-disable react/prop-types */\r\n\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaTimes } from 'react-icons/fa';\r\nimport NumberFormat from 'react-number-format';\r\nimport { NUMBERS_MAX_LENGTH, NUMBERS_MAX_VALUE } from '../../../Config';\r\nimport styles from './InputGroup.module.scss';\r\n\r\nexport type Props = React.DetailedHTMLProps, HTMLInputElement> & {\r\n text?: string;\r\n icon?: any;\r\n nameText?: string;\r\n noBorder?: boolean;\r\n format?: 'default' | 'money' | 'percentage' | 'number' | 'integer';\r\n containerClassName?: string;\r\n onValueChange?: (value: string | number) => void;\r\n hideMessageLength?: boolean;\r\n placeholder?: string;\r\n clickInText?: boolean;\r\n onClickInText?: () => void;\r\n isClearable?: boolean;\r\n removeInputBorderRadius?: boolean;\r\n removeIconOrTextBorderRadius?: boolean;\r\n onClear?: (value: string | number) => void;\r\n noFixedDecimalCase?:boolean\r\n};\r\n\r\nconst InputGroup = React.forwardRef(({ text, icon, noBorder, nameText, format = 'default', onValueChange, hideMessageLength, placeholder, \r\n containerClassName, clickInText, onClickInText, isClearable = false, removeInputBorderRadius, removeIconOrTextBorderRadius,onClear,noFixedDecimalCase, ...props }, ref) => {\r\n\r\n const { t } = useTranslation();\r\n const [textLength, setTextLength] = useState(0);\r\n\r\n const withValueCap = (inputObj: any) => {\r\n const { value } = inputObj;\r\n if (value <= NUMBERS_MAX_VALUE) return inputObj;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {nameText && {nameText}}\r\n\r\n {format === 'default' &&\r\n {\r\n setTextLength(e.currentTarget.value.length);\r\n if (props.onChange) {\r\n props.onChange(e);\r\n }\r\n if (onValueChange) {\r\n onValueChange(e.currentTarget.value);\r\n }\r\n }}\r\n className={`${styles.input} ${props.className || ''} ${props.disabled ? styles.disabled : ''} ${!noBorder ? styles.border : ''} ${removeInputBorderRadius ? styles.noBorderRadiusLeft : ''}\r\n `}\r\n />\r\n\r\n }\r\n\r\n {(format === 'money' || format === 'percentage' || format === 'number' || format === 'integer') && {\r\n if (onValueChange) {\r\n onValueChange(e.floatValue ?? (props.type === 'number' || format === 'integer' ? 0 : ''));\r\n }\r\n }}\r\n onChange={e => {\r\n setTextLength(e.currentTarget.value.length);\r\n if (props.onChange) {\r\n props.onChange(e);\r\n }\r\n }}\r\n className={`${styles.input} ${styles.inputMoney} ${props.className || ''} ${props.disabled ? styles.disabled : ''} ${!noBorder ? styles.border : ''} ${removeInputBorderRadius ? styles.noBorderRadiusLeft : ''}\r\n `}\r\n disabled={props.disabled}\r\n isAllowed={withValueCap}\r\n />}\r\n\r\n {isClearable && (textLength > 0 || props.value) &&\r\n !props.disabled && {\r\n if (onValueChange) {\r\n onValueChange('');\r\n }\r\n if (onClear) {\r\n onClear('');\r\n }\r\n }} />\r\n }\r\n {(text || icon) &&
clickInText ? onClickInText && onClickInText() : null}>\r\n {icon ? icon : text}\r\n
}\r\n\r\n
\r\n { !hideMessageLength && !(format === 'money' || format === 'percentage') && textLength === props.maxLength &&
{t('common.field_max_length', { value: textLength })}
}\r\n { !hideMessageLength && (format === 'money' || format === 'percentage') && textLength === NUMBERS_MAX_LENGTH &&
{t('common.field_numbers_max_length', { value: NUMBERS_MAX_LENGTH - 3 })}
}\r\n
\r\n );\r\n});\r\n\r\nexport default InputGroup;\r\n","import React, { useEffect, useState } from 'react';\r\nimport 'rc-slider/assets/index.css';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from '../formItem/FormItem';\r\nimport Label from '../label/Label';\r\nimport styles from './RangeInputPicker.module.scss';\r\nimport DateTimePicker from '../dateTimePicker/DateTimePicker';\r\nimport { useTranslation } from 'react-i18next';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport moment from 'moment';\r\nimport Input from '../input/Input';\r\nimport { DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport Storage from '../../services/Storage';\r\nimport { FaInfoCircle } from 'react-icons/fa';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\ntype Props = {\r\n label?: string,\r\n onChange: (startValue: any, endValue: any) => any,\r\n isDatePicker?: boolean,\r\n showMonthYearPicker?: boolean,\r\n defaultStartValue?: any,\r\n defaultEndValue?: any,\r\n groupSymbol?: string\r\n type?: string\r\n dateFormat?: string;\r\n tooltip?: string\r\n};\r\n\r\nconst RangeInputPicker: React.FC = ({ label, isDatePicker, showMonthYearPicker, defaultStartValue, defaultEndValue, groupSymbol, onChange, type, dateFormat, tooltip }: Props) => {\r\n\r\n const [startValue, setStartValue] = useState(defaultStartValue != null ? defaultStartValue : null);\r\n const [endValue, setEndValue] = useState(defaultEndValue != null ? defaultEndValue : null);\r\n const [tool, setTool] = useState(null)\r\n useEffect(() => {\r\n setStartValue(defaultStartValue);\r\n }, [defaultStartValue]);\r\n\r\n useEffect(() => {\r\n setTool(tooltip ?? null)\r\n }, [tooltip]);\r\n\r\n useEffect(() => {\r\n setEndValue(defaultEndValue);\r\n }, [defaultEndValue]);\r\n\r\n const { t } = useTranslation();\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {label && }\r\n {tool != null && <>\r\n \r\n }\r\n {Boolean(startValue) && }\r\n\r\n
\r\n \r\n \r\n \r\n {isDatePicker && {\r\n setStartValue(date);\r\n onChange(date, endValue);\r\n }}\r\n selected={startValue ? moment(startValue).toDate() : undefined}\r\n customInput={} />}\r\n maxDate={endValue}\r\n showMonthYearPicker={showMonthYearPicker}\r\n />}\r\n {!isDatePicker && groupSymbol && {\r\n setStartValue(value || value === 0 ? Number(value) : undefined);\r\n onChange(value || value === 0 ? Number(value) : undefined, endValue);\r\n }}\r\n />}\r\n {!isDatePicker && !groupSymbol && {\r\n const value = e.currentTarget.value;\r\n setStartValue(value);\r\n onChange(value, endValue);\r\n }}\r\n value={startValue}\r\n />}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {Boolean(endValue) && }\r\n
\r\n \r\n \r\n \r\n {isDatePicker && {\r\n const newDate = date && showMonthYearPicker ? new Date(date.getFullYear(), date.getMonth() + 1, 0) : date;\r\n\r\n setEndValue(newDate);\r\n onChange(startValue, newDate);\r\n }}\r\n selected={endValue ? moment(endValue).toDate() : undefined}\r\n customInput={} />}\r\n minDate={startValue}\r\n showMonthYearPicker={showMonthYearPicker}\r\n />}\r\n {!isDatePicker && groupSymbol && {\r\n setEndValue(value || value === 0 ? Number(value) : undefined);\r\n onChange(startValue, value || value === 0 ? Number(value) : undefined);\r\n }}\r\n />}\r\n {!isDatePicker && !groupSymbol && {\r\n const value = e.currentTarget.value;\r\n setEndValue(value);\r\n onChange(startValue, value);\r\n }}\r\n value={endValue}\r\n />}\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default RangeInputPicker;","import Http from '../../../common/services/Http';\r\nimport { Paged } from '../../common/types/Page';\r\nimport { UseContractsSearchCriteria } from './models/UseContractsSearchCriteria';\r\nimport { UseContractDto } from './models/UseContractDto';\r\nimport CustomFile from '../../../common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\n\r\nclass UseContractsService {\r\n\r\n public getList(criteria: UseContractsSearchCriteria) {\r\n return Http.get>('useContracts', criteria);\r\n }\r\n\r\n public catalog() {\r\n return Http.get('useContracts/catalog');\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('useContracts/' + id);\r\n }\r\n\r\n public create(model: UseContractDto, attachment?: CustomFile[]) {\r\n return Http.postWithFile('useContracts', model, attachment ? attachment : []);\r\n }\r\n \r\n public update(model: UseContractDto, attachment?: CustomFile[]) {\r\n return Http.putWithFile('useContracts', model, attachment ? attachment : []);\r\n }\r\n\r\n public remove(model: UseContractDto) {\r\n return Http.put('useContracts/deactivate', model);\r\n }\r\n\r\n public getUseContractTypes() {\r\n return Http.get('useContracts/get-use-contract-types');\r\n }\r\n\r\n public getUseContractsByVehicle(id: string, notAchat?: boolean) {\r\n return Http.get(notAchat ? ('useContracts/get-use-contracts-by-vehicle/' + id + '/' + notAchat) : ('useContracts/get-use-contracts-by-vehicle/' + id));\r\n }\r\n}\r\n\r\nexport default new UseContractsService();","import { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport React from 'react';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\nimport styles from './ToggleSwitch.module.scss';\r\n\r\ntype Props = {\r\n name: string;\r\n form: UseFormMethods | any;\r\n isDetails?: boolean;\r\n changeToggle?: () => void;\r\n} & React.DetailedHTMLProps, HTMLInputElement>;\r\n\r\nconst ToggleSwitch: React.FC = ({ name, form, isDetails, changeToggle, ...props }: Props) => {\r\n\r\n return (\r\n\r\n {\r\n return (\r\n \r\n {\r\n if (!isDetails) {\r\n onChange(e.target.checked);\r\n changeToggle && changeToggle();\r\n }\r\n }}\r\n ref={ref}\r\n />\r\n \r\n\r\n \r\n );\r\n }}\r\n key={name}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || null}\r\n />\r\n );\r\n\r\n\r\n}\r\n\r\nexport default ToggleSwitch;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\nimport styles from './VehiclesManagementFiltersScreen.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport Input from 'common/components/input/Input';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport Utils from 'common/services/Utils';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nexport interface Filters {\r\n registrationNumber?: string;\r\n registrationDate?: Date | null;\r\n segmentId?: string;\r\n segmentName?: string;\r\n driverId?: string;\r\n driverName?: string;\r\n costAverage?: number[];\r\n costAccumulated?: number[];\r\n costsStartDate?: Date;\r\n costsEndDate?: Date;\r\n useContractTypeId?: string;\r\n useContractTypeName?: string;\r\n useContractActive?: boolean;\r\n useContractEndsBefore?: Date | null;\r\n useContractEndsAfter?: Date | null;\r\n inactives?: boolean;\r\n page?: number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n hasCountersPolicy?: boolean;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst VehiclesManagementFiltersScreen: React.FC = ({ filters, hasCountersPolicy, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const guidEmpty = '00000000-0000-0000-0000-000000000000';\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch, control } = form;\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const [segmentsOptions, setSegments] = useState([]);\r\n const [useContractTypeOptions, setUseContractTypeOptions] = useState([]);\r\n const [selectUseContractActive, setSelectUseContractActive] = useState();\r\n const [selectUseContractTypeId, setSelectUseContractTypeId] = useState();\r\n\r\n //const [driversOptions, setDrivers] = useState([]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const segmentsOptionsDB = await VehicleSegmentsService.catalog();\r\n setSegments(segmentsOptionsDB);\r\n\r\n const useContractTypesOrig = await UseContractsService.getUseContractTypes();\r\n const useContractTypes = useContractTypesOrig.map(x => ({ ...x, label: t(`common.use_contract_types.${x.label}` as any) }));\r\n const useContractTypesOrdered = Utils.sortAlphabetically(useContractTypes);\r\n const ___useContractTypesOrdered = [...useContractTypesOrdered, { value: '00000000-0000-0000-0000-000000000000', label: t('contracts.use_contract.without_contract') }];\r\n setUseContractTypeOptions(___useContractTypesOrdered);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (form.getValues('useContractActive') != undefined) {\r\n setSelectUseContractActive(form.getValues('useContractActive'));\r\n }\r\n\r\n if (form.getValues('useContractTypeId') != undefined) {\r\n setSelectUseContractTypeId(form.getValues('useContractTypeId'));\r\n }\r\n\r\n\r\n\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n reset({\r\n registrationNumber: undefined,\r\n registrationDate: undefined,\r\n segmentId: undefined,\r\n costAverage: undefined,\r\n costAccumulated: undefined,\r\n useContractTypeId: undefined,\r\n useContractActive: undefined,\r\n useContractEndsAfter: undefined,\r\n useContractEndsBefore: undefined,\r\n inactives: false,\r\n });\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n const getVal = (arr: any[] | undefined, index: number): any | undefined => {\r\n return arr && arr.length > index ? arr[index] : undefined;\r\n }\r\n\r\n const onSelectUseContractActive = (status: boolean) => {\r\n setSelectUseContractActive(selectUseContractActive == status ? undefined : status);\r\n setValue('useContractActive', selectUseContractActive == status ? undefined : status);\r\n // setValue('useContractEndsAfter', undefined);\r\n // setValue('useContractEndsBefore', undefined);\r\n //onInputChange();\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('registrationNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('vehicle.registration_identification')}\r\n autoComplete='off'\r\n defaultValue={watch('registrationNumber')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('segmentName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={segmentsOptions.find(x => x.value === value) ? { label: segmentsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"segmentId\"\r\n defaultValue={getValues('segmentId')} />\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value);\r\n setValue('useContractTypeId', data?.value);\r\n setValue('useContractTypeName', data?.label);\r\n setSelectUseContractTypeId(data?.value);\r\n if (data?.value == guidEmpty) {\r\n setValue('useContractActive', undefined);\r\n setValue('useContractEndsAfter', undefined);\r\n setValue('useContractEndsBefore', undefined);\r\n }\r\n onInputChange();\r\n }}\r\n value={useContractTypeOptions.find(x => x.value === value) ? { label: useContractTypeOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"useContractTypeId\"\r\n defaultValue={getValues('useContractTypeId')} />\r\n \r\n \r\n\r\n {selectUseContractTypeId != guidEmpty && \r\n \r\n \r\n
\r\n
onSelectUseContractActive(true)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('contracts.states.in_progress')}\r\n
\r\n
\r\n
\r\n
onSelectUseContractActive(false)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('contracts.states.expired')}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {\r\n form.setValue('useContractEndsAfter', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('useContractEndsBefore', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('useContractEndsAfter')}\r\n defaultEndValue={form.getValues('useContractEndsBefore')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n\r\n\r\n\r\n {hasCountersPolicy && \r\n \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue === 0 ? Number(endValue) : undefined);\r\n setValue('costAverage', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('costAverage'), 0)}\r\n defaultEndValue={getVal(getValues('costAverage'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n \r\n \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue === 0 ? Number(endValue) : undefined);\r\n setValue('costAccumulated', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('costAccumulated'), 0)}\r\n defaultEndValue={getVal(getValues('costAccumulated'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n \r\n \r\n \r\n {\r\n form.setValue('costsStartDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('costsEndDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('costsStartDate')}\r\n defaultEndValue={form.getValues('costsEndDate')}\r\n dateFormat=\"MM/yyyy\"\r\n isDatePicker\r\n showMonthYearPicker\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VehiclesManagementFiltersScreen);\r\n","import { DATE_FORMAT_DEFAUT, DATE_TIME_FORMAT_DEFAULT } from 'Config';\r\nimport React from 'react';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport styles from './IconWithText.module.scss';\r\n\r\ntype Props = {\r\n icon: any;\r\n value?: string | number | null | undefined;\r\n valueDate?: string | Date | null;\r\n valueHour?: string | null;\r\n suffix?: string;\r\n isNumeric?: boolean;\r\n isDate?: boolean;\r\n color?: string;\r\n size?: 'sm' | 'lg';\r\n tooltip?: string\r\n className?: string;\r\n decimalScale?: number;\r\n fixedDecimalScale?: boolean;\r\n};\r\n\r\nconst IconWithText = ({ icon, value, valueDate, valueHour, suffix, isNumeric, isDate, color, size, tooltip, className, decimalScale, fixedDecimalScale, ...props }: Props) => {\r\n return (\r\n <>\r\n
\r\n
\r\n {isNumeric && }\r\n {isDate && valueDate && }\r\n\r\n {isNumeric !== true && isDate !== true && fixedDecimalScale !== true ? value ? {value} : '-' : ''}\r\n\r\n {fixedDecimalScale && }\r\n\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default IconWithText;","import React, { ReactElement } from 'react';\r\nimport styles from './FilterBadge.module.scss';\r\nimport { FaTimesCircle } from 'react-icons/fa';\r\n\r\ntype BadgePreset = 'primaryLight' | 'primaryDark' | 'primaryLightInverted' | 'inactive';\r\n\r\ntype Props = {\r\n title?: string;\r\n value?: string | ReactElement;\r\n preset?: BadgePreset;\r\n onRemoveFilter: () => void;\r\n showRemoveFilter?: boolean;\r\n} & React.DetailedHTMLProps, HTMLSpanElement>;\r\n\r\nconst FilterBadge: React.FC = ({ children, title, value, preset = 'primaryDark', onRemoveFilter, showRemoveFilter = true, ...props }: Props) => {\r\n\r\n const presetClassName = preset ? styles[preset] : '';\r\n\r\n return (\r\n \r\n {Boolean(title) && {title}: }\r\n {Boolean(value) && {value}}\r\n {children}\r\n { showRemoveFilter && }\r\n \r\n );\r\n}\r\n\r\nexport default FilterBadge;\r\n","import React, { ReactElement } from 'react';\r\nimport styles from './FilterList.module.scss';\r\nimport FilterBadge from '../filterBadge/FilterBadge';\r\n\r\nexport type Filter = {\r\n value?: string | ReactElement | null;\r\n label?: string;\r\n children?: ReactElement\r\n onRemove: () => void;\r\n showRemoveFilter?: boolean;\r\n};\r\n\r\ntype Props = {\r\n filters?: Filter[];\r\n};\r\n\r\nconst FilterList: React.FC = ({ filters }: Props) => {\r\n if(!filters){\r\n return null;\r\n } \r\n\r\n return (\r\n
\r\n {filters.filter(x => x?.value || x?.children)\r\n .map(filter => \r\n \r\n {filter.children}\r\n \r\n )\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default FilterList;\r\n","import React from 'react';\r\nimport Box from '../box/Box';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport styles from './CounterBox.module.scss';\r\nimport Badge from '../badge/Badge';\r\n\r\nexport type CounterObj = {\r\n counter: string;\r\n color: any;\r\n};\r\n\r\ntype Props = {\r\n icon: any;\r\n label: string;\r\n subLabel?: string;\r\n counter?: number | undefined;\r\n isMoney?: boolean;\r\n isKm?: boolean;\r\n\r\n counters?: CounterObj[] | undefined;\r\n col4?: boolean;\r\n className?: string;\r\n onClick?: () => void;\r\n cursor?: string | undefined;\r\n\r\n verticalAlign?: boolean;\r\n inLine?: boolean;\r\n};\r\n\r\nconst CounterBox = ({ icon, label, subLabel, counter, isMoney, isKm, counters, col4, className, onClick, cursor, verticalAlign, inLine, ...props }: Props) => {\r\n\r\n return \r\n
\r\n {icon &&
}\r\n
\r\n \r\n {label}\r\n {subLabel &&
{subLabel}
}\r\n
\r\n\r\n \r\n {(isMoney || isKm) && counter !== undefined && counter !== null && }\r\n {(!isMoney && !isKm) && counter !== undefined && counter !== null && counter}\r\n\r\n {!!counters &&
{counters.map((x, i) => {x.counter})}
}\r\n
\r\n
\r\n
\r\n \r\n ;\r\n};\r\n\r\nexport default CounterBox;\r\n","export enum ContractStatusColorEnum {\r\n PLANNED = '#16CCC3',\r\n EXPIRED = '#DC4C4C',\r\n IN_PROGRESS = '#1781A1'\r\n}\r\n","import React, { CSSProperties, ReactChild } from 'react';\r\nimport styles from './Dropdown.module.scss';\r\nimport DropdownWrapper from 'react-dropdown-wrapper';\r\nimport { DropdownWrapperChildFunc } from '../../types/ReactDropdownWrapper';\r\n\r\ntype Props = {\r\n style?: CSSProperties;\r\n children: ReactChild | ReactChild[];\r\n options: React.ReactNode | React.ReactNode[];\r\n};\r\n\r\nconst Dropdown: React.FC = ({ children, options, style }: Props) => {\r\n\r\n return (\r\n \r\n {({ changeStatus, isShow }: DropdownWrapperChildFunc) => (\r\n <>\r\n
{\r\n e.preventDefault();\r\n changeStatus(!isShow);\r\n }}>{children}
\r\n {isShow && (\r\n
\r\n {options}\r\n
\r\n )}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default Dropdown;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport styles from './DeletedVehicleCircle.module.scss';\r\n\r\ninterface Props {\r\n id: string;\r\n}\r\n\r\nconst DeletedVehicleCircle = ({ id }: Props) => {\r\n const { t } = useTranslation();\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DeletedVehicleCircle","import Http from 'common/services/Http';\r\nimport { ExportDataItemSearchCriteria } from './models/ExportDataItemSearchCriteria';\r\nimport { ExportDataItemSelectedDto } from './models/ExportDataItemSelectedDto';\r\n\r\n\r\n\r\nclass ExportDataItemsService {\r\n\r\n public getItems(criteria: ExportDataItemSearchCriteria) {\r\n return Http.get('exportdataitemcompanies/getItems', criteria);\r\n } \r\n \r\n public update(model: ExportDataItemSelectedDto[]) {\r\n console.log(model);\r\n console.log({ list : model.map(r => { return { id: r.value, active: r.selected }; }) });\r\n\r\n return Http.put('exportdataitemcompanies', { items : model.map(r => { return { id: r.value, active: r.selected }; }) });\r\n }\r\n\r\n}\r\n\r\nexport default new ExportDataItemsService();\r\n","import styles from './ReportColumnFilterModal.module.scss'\r\n\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next'\r\nimport Loading from 'common/services/Loading';\r\nimport ExportDataItemsService from 'api/exportDataItems/ExportDataItemsService';\r\nimport { ExportDataItemSearchCriteria } from 'api/exportDataItems/models/ExportDataItemSearchCriteria';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport toggleSwitchStyle from 'common/components/toggleSwitch/ToggleSwitch.module.scss'\r\nimport { ExportDataItemSelectedDto } from 'api/exportDataItems/models/ExportDataItemSelectedDto';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport CloseButton from 'assets/svg/x-circle.svg'\r\nimport Button from 'common/components/button/Button';\r\nimport Box from 'common/components/box/Box';\r\n\r\ntype Props = {\r\n\tisOpen: boolean;\r\n\tsetIsOpen: (status: boolean) => void;\r\n\ttype: string;\r\n\tcompanyId: string;\r\n\tgetReport: (type: string) => void;\r\n}\r\n\r\nconst ReportColumnFilterModal: React.FC = ({ isOpen, setIsOpen, type, getReport, companyId }: Props) => {\r\n\tconst { t } = useTranslation();\t\r\n const { addToast } = useToasts();\t\r\n\tconst dispatch = useDispatch();\r\n\tconst [criteria, setCriteria] = useState({\r\n itemsPerPage: 5000,\r\n page: 1, \r\n orderBy: 'asc',\r\n\t\torderColumn: 'eic.export_data_item_id',\r\n\t\tcompanyId: companyId,\r\n\t\ttype: type \r\n });\r\n\tconst [items, setItems] = useState([]);\r\n\tconst [refresh, setRefresh] = useState(0);\r\n\r\n\tconst closeModal = () => {\r\n\t\tsetIsOpen(false)\r\n\t}\r\n\r\n\tconst getData = async () => {\r\n\r\n try {\r\n Loading.show();\r\n const items = await ExportDataItemsService.getItems(criteria);\r\n\t\t\tsetItems(items);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get export data item list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n\t\r\n\tuseEffect(() => { \r\n getData(); \r\n }, [type]);\r\n\t\r\n\tconst onSave = async () => {\r\n\t\tawait ExportDataItemsService.update(items);\r\n\t\tgetReport(type);\r\n\t\tcloseModal();\r\n\t}\r\n\r\n\tconst renderLabelColumnCell = (item: ExportDataItemSelectedDto) => {\r\n return (\r\n
\r\n
\r\n\t\t\t\t{t(`export_data_report.list.types.${item.label}` as any)}\r\n
\r\n
\r\n )\r\n }\r\n\r\n\tconst tableColumns: ListingTableColumn[] = [\r\n\t\t{\r\n\t\t\tname: t('export_data_report.list.label'),\t\t\t\r\n\t\t\tsearchField: 'v.registration_number',\r\n\t\t\trenderCell: renderLabelColumnCell,\r\n\t\t\twidth: 'fill'\r\n\t\t},\t\t\t\t\r\n\t\t{\t\t\t\r\n\t\t\tname: t('export_data_report.list.selected'),\r\n\t\t\trenderCell: row =>
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tconsole.log(row.selected);\r\n\t\t\t\t\t\t\trow.selected = !row.selected;\r\n\t\t\t\t\t\t\tsetRefresh(refresh +1 );\r\n\t\t\t\t\t\t}}\t\t\t\t\t\t\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
,\r\n\t\t\twidth: 'fill'\r\n\t\t}\r\n\t];\r\n\t\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{isOpen && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('export_data_report.title')}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t closeModal()}\r\n\t\t\t\t\t\tclassName={styles.closeButton}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default ReportColumnFilterModal\r\n","import { useTranslation } from 'react-i18next';\r\nimport styles from './PaginationTextInfo.module.scss';\r\n\r\nexport type PaginationTextInfoProps = {\r\n pageItems: number;\r\n totalItems: number;\r\n itemName: string;\r\n className?: string;\r\n};\r\n\r\nconst PaginationTextInfo = ({ pageItems, totalItems, itemName, className }: PaginationTextInfoProps) => {\r\n const { t } = useTranslation();\r\n return (\r\n
\r\n {pageItems} {t('pagination.of')} {totalItems} {itemName}\r\n
\r\n );\r\n}\r\n\r\nexport default PaginationTextInfo;","import { useTranslation } from 'react-i18next';\r\nimport styles from './Pagination.module.scss';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE } from 'Config';\r\n\r\nexport type PaginationProps = {\r\n currentPage: number;\r\n itemsPerPage?: number,\r\n totalItems: number\r\n onChange: (page: number) => void;\r\n containerClassName?: string;\r\n}\r\n\r\nconst Pagination = ({ currentPage, itemsPerPage = DEFAULT_PAGINATION_ITEMS_PER_PAGE, totalItems, onChange, containerClassName }: PaginationProps) => {\r\n const { t } = useTranslation();\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n\r\n return (\r\n onChange(page.selected + 1)}\r\n containerClassName={`${styles.container} ${containerClassName || ''}`}\r\n pageClassName={styles.page}\r\n activeClassName={styles.currentPage}\r\n nextClassName={styles.direction}\r\n previousClassName={styles.direction}\r\n disabledClassName={styles.directionDisabled}\r\n forcePage={currentPage - 1}\r\n />\r\n );\r\n}\r\n\r\nexport default Pagination;","import React from 'react';\r\nimport PaginationTextInfo, { PaginationTextInfoProps } from './PaginationTextInfo';\r\nimport Pagination, { PaginationProps } from './Pagination';\r\nimport styles from './PaginationWithInfo.module.scss';\r\n\r\ntype Props = PaginationProps & PaginationTextInfoProps;\r\n\r\nconst PaginationWithInfo = ({ className, ...props }: Props) => props.totalItems > 0 ? (\r\n
\r\n \r\n \r\n
\r\n) : null;\r\n\r\nexport default PaginationWithInfo;","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport styles from './VehiclesManagementScreen.module.scss';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { DATE_FORMAT_DEFAUT, DATE_FORMAT_MONTH_YEAR, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport CoinsIcon from 'assets/svg/coins.svg';\r\nimport CoinsBlackIcon from 'assets/svg/coins_black.svg';\r\nimport MediaIcon from 'assets/svg/media.svg';\r\nimport MediaIcon2 from 'assets/svg/Grupo_352.svg';\r\nimport ConeBlackIcon from 'assets/svg/cone_black.svg';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport EuroIcon from 'assets/svg/euro.svg';\r\nimport TicketIcon from 'assets/svg/ticket.svg';\r\nimport FloorBrushIcon from 'assets/svg/floor-brush.svg';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport VehiclesManagementFiltersScreen, { Filters } from './components/VehiclesManagementFiltersScreen';\r\nimport { VehiclesSearchCriteria } from 'api/vehicles/models/VehiclesSearchCriteria';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { VehicleCounterListDto } from 'api/vehicles/models/VehicleDto';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { BiTargetLock } from 'react-icons/bi';\r\nimport { FaFileExport } from 'react-icons/fa';\r\nimport dayjs from 'dayjs';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport Loading from 'common/services/Loading';\r\nimport moment from 'moment';\r\nimport { ContractStatusColorEnum } from 'api/contracts/enums/ContractStatusColorEnum';\r\n\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\nimport ReportColumnFilterModal from './components/ReportColumnFilterModal';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\n\r\nconst defaultcostsEndDate = dayjs().endOf('month').toDate();\r\n\r\nconst VehiclesManagementScreen = () => {\r\n\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.registration_number',\r\n orderBy: 'asc',\r\n costsEndDate: defaultcostsEndDate,\r\n inactives: true,\r\n hasKmFeature:false\r\n });\r\n const [vehicles, setVehicles] = useState([]);\r\n const history = useHistory();\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [totalItems, setTotalItems] = useState(0);\r\n\r\n const [filters, setFilters] = useState({ costsEndDate: defaultcostsEndDate, inactives: true });\r\n const [filtersTotal, setFiltersTotal] = useState(2);\r\n\r\n const [counters, setCounters] = useState();\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCountersPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['CHARGES_TOTAL_READ']);\r\n const hasGpsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n const hasExportPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_EXPORT_EXPENSES_WRITE']);\r\n\r\n\r\n //const hasVehiclesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLES_WRITE']);\r\n const [pageLoaded, setPageLoaded] = useState(false);\r\n\r\n const [showReportColumnFilterModal, setShowReportColumnFilterModal] = useState(false);\r\n const [reportType, setReportType] = useState('');\r\n\r\n const getData = async () => {\r\n\r\n try {\r\n Loading.show();\r\n let countersDB = null;\r\n if (hasCountersPolicy) {\r\n countersDB = await VehiclesService.getCountersList(criteria);\r\n }\r\n const vehiclesDB = await VehiclesService.getList(criteria);\r\n setCurrentPage(vehiclesDB.currentPage);\r\n setTotalItems(vehiclesDB.totalItems);\r\n\r\n setVehicles(vehiclesDB.items);\r\n if (countersDB) {\r\n setCounters(countersDB);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const renderImageCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderDescCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n {row.registrationNumber}\r\n {!row.active && }\r\n
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ? ' | ' : '') + (row.vehicleModelName ?? '')}
\r\n {/*
{row.vehicleSegmentName + (' | ') + (t(('vehicle.fuels.' + row.fuelName) as any))}
*/}\r\n
\r\n )\r\n }\r\n\r\n const renderTypeContractCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
{row.useContractTypeName ? t(`common.use_contract_types.${row.useContractTypeName}` as any) : (row.useContractExpiredEndDate ? ({t('contracts.states.expired')})
: '-')}
\r\n
{\r\n row.useContractMonthsContract && row.useContractPastMonths\r\n ? `${t('vehicles_management.list.months')} ${row.useContractPastMonths} ${t('vehicles_management.list.of')} ${row.useContractMonthsContract}`\r\n : ''\r\n }
\r\n
\r\n )\r\n }\r\n\r\n const showField = (feature: string,segmentFeatures: string[]) => {\r\n return (segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n const renderKilometersCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n  \r\n {row.averageTargetMonth ? : '-'}\r\n
\r\n \r\n {hasGpsReadPolicy && row && !!row.currentKilometersTracking &&\r\n
\r\n {t('vehicles_management.list.gps')}: \r\n
}\r\n
\r\n )\r\n }\r\n\r\n const renderConsumptionsAndCostsCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n 0 && row.currentKilometers && row.currentKilometers > 0 ? (row.monthlyCostTotal / row.currentKilometers) : 0)}\r\n fixedDecimalScale={true}\r\n suffix={t('common.euro')}\r\n />\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n const renderObservationsCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {Boolean(row.totalFines) &&
\r\n \r\n
}\r\n {Boolean(row.totalCleaning) &&
\r\n \r\n
}\r\n {Boolean(row.totalAccidents) &&
\r\n \r\n
}\r\n
\r\n )\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n renderCell: renderImageCell,\r\n width: 90,\r\n hideOn: ['sm', 'md'],\r\n onlyImageColumn: true\r\n },\r\n {\r\n name: t('vehicles_management.list.vehicle'),\r\n renderCell: renderDescCell,\r\n onSearch: onTableFilter,\r\n searchField: 'v.registration_number'\r\n },\r\n {\r\n name: t('common.type_funding'),\r\n renderCell: renderTypeContractCell,\r\n onSearch: onTableFilter,\r\n searchField: 'use_contract_info.name',\r\n hideOn: ['sm', 'md', 'lg', 'xl'],\r\n width: 'fill'\r\n },\r\n {\r\n name: t('vehicles_management.list.kilometers'),\r\n renderCell: renderKilometersCell,\r\n hideOn: ['sm', 'md', 'lg'],\r\n onSearch: onTableFilter,\r\n searchField: 'v.current_kilometers',\r\n },\r\n {\r\n name: t('vehicles_management.list.consumption_costs', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: renderConsumptionsAndCostsCell,\r\n onSearch: onTableFilter,\r\n searchField: 'monthly_cost_total_kilometers',\r\n hideOn: ['sm'],\r\n width: 'fill'\r\n },\r\n {\r\n name: <>\r\n
\r\n {t('vehicles_management.list.observations')}\r\n
\r\n \r\n ,\r\n renderCell: renderObservationsCell,\r\n\r\n hideOn: ['sm', 'md', 'lg'],\r\n width: 'fill',\r\n },\r\n ];\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/vehicles/${type}/${id}/informations/list/undefined/undefined/undefined/undefined/${'vehicles-management'}`);\r\n } else {\r\n history.push(`/vehicles/${type}`);\r\n }\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = currentPage;\r\n saveFiltersOnCache(filters);\r\n\r\n if (event.ctrlKey) {\r\n window.open('vehicles/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('VEHICLESMANAGEMENTFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n setPageLoaded(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (pageLoaded) {\r\n getData();\r\n }\r\n }, [criteria]);\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('VEHICLESMANAGEMENTFILTER');\r\n if (cachedFilters != null) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n updateTotalFilters(f);\r\n criteria.registrationNumber = f.registrationNumber;\r\n criteria.registrationDate = f.registrationDate;\r\n criteria.segmentId = f.segmentId;\r\n criteria.minCost = f.costAverage && f.costAverage[0];\r\n criteria.maxCost = f.costAverage && f.costAverage[1];\r\n criteria.minCostTotal = f.costAccumulated && f.costAccumulated[0];\r\n criteria.maxCostTotal = f.costAccumulated && f.costAccumulated[1];\r\n criteria.driverId = f.driverId;\r\n criteria.costsStartDate = f.costsStartDate;\r\n criteria.costsEndDate = f.costsEndDate;\r\n criteria.useContractTypeId = f.useContractTypeId;\r\n criteria.useContractActive = f.useContractActive;\r\n criteria.useContractEndsAfter = f.useContractEndsAfter;\r\n criteria.useContractEndsBefore = f.useContractEndsBefore;\r\n criteria.inactives = f.inactives;\r\n\r\n if (isOnLoad && f.page) {\r\n setCurrentPage(f.page);\r\n criteria.page = f.page\r\n } else {\r\n setCurrentPage(1);\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.registrationNumber) {\r\n total++;\r\n }\r\n if (f.registrationDate) {\r\n total++;\r\n }\r\n if (f.segmentId && f.segmentId.length > 0) {\r\n total++;\r\n }\r\n if (f.costAverage) {\r\n total++;\r\n }\r\n if (f.costAccumulated) {\r\n total++;\r\n }\r\n if (f.costsStartDate || f.costsEndDate) {\r\n total++;\r\n }\r\n\r\n if (f.useContractTypeId) {\r\n total++;\r\n }\r\n\r\n if (f.useContractActive != undefined) {\r\n total++;\r\n }\r\n\r\n if (f.useContractEndsAfter || f.useContractEndsBefore) {\r\n total++;\r\n }\r\n\r\n if (f.inactives) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {counters && renderBox(CarIcon, t('vehicles_management.list.number_vehicles'), counters.numberVehicles ?? 0)}\r\n {counters && renderBox(MediaIcon, t('vehicles_management.list.average_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.costTotalMoyenne ?? 0, true, t('dashboard.average_cost_tooltip'))}\r\n {counters && renderBox(CoinsIcon, t('vehicles_management.list.total_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.costTotalAccumulated ?? 0, true, t('dashboard.cumulative_cost_tooltip', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }))}\r\n \r\n
\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter: number, isMoney?: boolean, tooltip?: string) => {\r\n return \r\n }\r\n\r\n const getReport = async (type: string) => {\r\n if (type === 'VEHICLE_EXPENSES_EXCEL') {\r\n await getExpensesReport(true);\r\n } else if (type === 'VEHICLE_EXPENSES_DETAILS_EXCEL') {\r\n await getExpensesReport(false);\r\n }\r\n else {\r\n await getVehiclesDetailsReport();\r\n }\r\n }\r\n\r\n const getExpensesReport = async (total: boolean) => {\r\n Loading.show();\r\n try {\r\n const report = total ? await VehiclesService.getExpensesTotalsReport(criteria) : await VehiclesService.getExpensesDetailsReport(criteria);\r\n const title = total ? t('vehicles_management.list.vehicles_expenses_excel_total_title') : t('vehicles_management.list.vehicles_expenses_excel_details_title');\r\n saveAs(report, `${title}_${moment(new Date()).format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicle expenses report`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getVehiclesDetailsReport = async () => {\r\n Loading.show();\r\n try {\r\n const report = await VehiclesService.getVehiclesDetailsReport(criteria);\r\n const title = t('vehicles_management.list.vehicles_contracts_excel_details_title');\r\n saveAs(report, `${title}_${moment(new Date()).format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles report`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n // const getVehiclesDetailsReport = async () => {\r\n // Loading.show();\r\n // setShowVehicleReportColumnFilterModal(true);\r\n // try {\r\n // const report = await VehiclesService.getVehiclesDetailsReport(criteria);\r\n // const title = t('vehicles_management.list.vehicles_contracts_excel_details_title');\r\n // saveAs(report, `${title}_${moment(new Date()).format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);\r\n // Loading.hide();\r\n // } catch (error) {\r\n // Loading.hide();\r\n // Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles report`, error);\r\n // addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n // }\r\n // }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {hasExportPolicy && \r\n getExpensesReport(true)}>\r\n {t('export_charges.tooltip_total')}\r\n \r\n getExpensesReport(false)}>\r\n {t('export_charges.tooltip_details')}\r\n \r\n { setReportType('VEHICLE_DETAILS_EXCEL'); setShowReportColumnFilterModal(true); }}>\r\n {t('export_vehicle_contract.title')}\r\n \r\n \r\n }>\r\n
\r\n \r\n
\r\n
}\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n \r\n
\r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.costsStartDate ? <>{t('common.range.from')} \r\n : filters.costsEndDate ? <>{t('common.range.to')} : undefined,\r\n label: t('vehicles_management.list.total_monthly_cost_date', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costsStartDate = filters.costsEndDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.registrationNumber,\r\n label: t('vehicle.registration_identification'),\r\n onRemove: () => { filters.registrationNumber = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.segmentName,\r\n label: t('vehicle.type'),\r\n onRemove: () => { filters.segmentId = filters.segmentName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.driverName,\r\n label: t('common.state'),\r\n onRemove: () => { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.costAverage || !filters.costAverage.length || !filters.costAverage.find(x => x !== undefined) ? undefined :\r\n filters.costAverage.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.costAverage[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('vehicles_management.list.average_monthly_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costAverage = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.costAccumulated || !filters.costAccumulated.length || !filters.costAccumulated.find(x => x !== undefined) ? undefined :\r\n filters.costAccumulated.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.costAccumulated[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('vehicles_management.list.total_monthly_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costAccumulated = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.useContractTypeName,\r\n label: t('common.type_funding'),\r\n onRemove: () => { filters.useContractTypeId = filters.useContractTypeName = undefined; onChangeFilters(filters) }\r\n },\r\n\r\n {\r\n value: filters.useContractActive == undefined ? undefined : (filters.useContractActive ? <>{t('contracts.states.in_progress')}\r\n : <>{t('contracts.states.expired')}),\r\n label: t('common.state'),\r\n onRemove: () => { filters.useContractActive = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.useContractEndsBefore && filters.useContractEndsAfter ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.useContractEndsAfter ? <>{t('common.range.from')} \r\n : filters.useContractEndsBefore ? <>{t('common.range.to')} : undefined,\r\n label: t('contracts.use_contract.expiration_date'),\r\n onRemove: () => { filters.useContractEndsBefore = filters.useContractEndsAfter = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.inactives ? t('common.yes') : '',\r\n label: t('vehicle.inactives'),\r\n onRemove: () => { filters.inactives = false; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {counters && renderCounterBoxes()}\r\n \r\n \r\n { showReportColumnFilterModal ? \r\n :\r\n <>\r\n onRowClick(event, row.id)}\r\n onHref={row => `vehicles/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'v.registration_number', isOrderAsc: true }}\r\n />\r\n \r\n \r\n }\r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default VehiclesManagementScreen;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect, Route, RouteProps } from 'react-router-dom';\r\nimport { Reducers } from '../../store/types';\r\nimport { POLICIES } from '../../Config';\r\nimport { UserProfile } from '../../api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\n\r\ntype Props = {\r\n policies: (keyof typeof POLICIES)[];\r\n type?: 'OR' | 'AND';\r\n} & RouteProps;\r\n\r\nconst PolicyRoute: React.FC = ({ children, policies, type = 'AND', component, ...props }: Props) => {\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const userPolicies = userProfile?.policies || [];\r\n const userIssues = userProfile?.issues || [];\r\n\r\n const allowed = UsersService.hasPolicies(userPolicies, policies, type);\r\n\r\n return (\r\n {\r\n const Component = component as any;\r\n if (userIssues.length > 0) {\r\n return \r\n }\r\n\r\n return allowed ? (component ? : children) : \r\n }} />\r\n );\r\n}\r\n\r\nexport default PolicyRoute;\r\n","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { SupplierSearchCriteria } from './models/SupplierSearchCriteria';\r\nimport { SupplierDto } from './models/SupplierDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\n\r\nclass SuppliersService {\r\n\r\n public getList(criteria: SupplierSearchCriteria) {\r\n return Http.get>('suppliers', criteria);\r\n }\r\n \r\n public catalog(criteria?: CatalogSupplierSearchCriteria) {\r\n return Http.get('suppliers/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('suppliers/' + id);\r\n }\r\n\r\n public getFuelSuppliers(criteria?: CatalogSupplierSearchCriteria) {\r\n return Http.get('suppliers/fuel-suppliers', criteria);\r\n }\r\n\r\n public create(model: SupplierDto, logo: CustomFile[]) {\r\n return Http.postWithFile('suppliers', model, logo);\r\n }\r\n\r\n public update(model: SupplierDto, logo: CustomFile[]) {\r\n return Http.putWithFile('suppliers', model, logo);\r\n }\r\n\r\n public remove(model: SupplierDto) {\r\n return Http.put('suppliers/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new SuppliersService();","import Http from 'common/services/Http';\r\nimport TrackingDevice from './models/TrackingDevice';\r\nimport TrackingCoordinates from './models/TrackingCoordinates';\r\nimport TrackingRoutes from './models/TrackingRoutes';\r\nimport { TrackingItemDto, TrackingPointItemDto } from './models/TrackingItemDto';\r\nimport TrackingVehicle from './models/TrackingVehicle';\r\nimport TrackingVehicleSearchCriteria from './models/TrackingVehicleSearchCriteria';\r\nimport { VehiclesSearchCriteria } from 'api/vehicles/models/VehiclesSearchCriteria';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport { Paged } from 'api/common/types/Page';\r\n\r\nclass TrackingService {\r\n\r\n public getDevicesList() {\r\n return Http.get(`tracking/devices`);\r\n }\r\n\r\n public getVehiclesList(vehicleIds: string[]) {\r\n return Http.post(`tracking/vehicles`, { vehicleIds });\r\n }\r\n\r\n public getCoordinates(vehicleId: string) {\r\n return Http.get(`tracking/coordinates/${vehicleId}`);\r\n }\r\n\r\n public getRoutes(vehicleId: string, date: Date, orderColumn?: string, orderBy?: string) {\r\n return Http.post('tracking/routes', { vehicleId, date, orderColumn, orderBy });\r\n }\r\n\r\n public getRoutesTotals(vehicleId: string, date: Date) {\r\n return Http.post('tracking/routes-totals', { vehicleId, date });\r\n }\r\n\r\n public getPosition(vehicleId: string) {\r\n return Http.post('tracking/current-position', { vehicleId });\r\n }\r\n\r\n public getAggregatePositions(criteria: TrackingVehicleSearchCriteria) {\r\n return Http.post>('tracking/aggregate-position', criteria);\r\n }\r\n\r\n public getAggregatePositionsPoints(criteria: TrackingVehicleSearchCriteria) {\r\n return Http.post('tracking/aggregate-position-points', criteria);\r\n }\r\n\r\n public getWaypoints(vehicleId: string, start: number, stop: number) {\r\n return Http.post('tracking/waypoints', { vehicleId, start, stop });\r\n }\r\n\r\n public hydrateGpsData(criteria: VehiclesSearchCriteria) {\r\n return Http.get('tracking/hydrate-gps-data', criteria);\r\n }\r\n\r\n public updateAddress(id: number, address: string) {\r\n return Http.put('tracking/tracking-routes-address/' + id, { id, address });\r\n }\r\n}\r\n\r\nexport default new TrackingService();","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { VehicleBrandsSearchCriteria } from './models/VehicleBrandsSearchCriteria';\r\nimport { VehicleBrandDto } from './models/VehicleBrandsDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogBrandsSearchCriteria } from 'api/catalog/models/CatalogBrandsSearchCriteria';\r\n\r\nclass VehicleBrandsService {\r\n public getList(criteria: VehicleBrandsSearchCriteria) {\r\n return Http.get>('vehiclebrands', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogBrandsSearchCriteria) {\r\n return Http.get('vehiclebrands/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('vehiclebrands/' + id);\r\n }\r\n\r\n public create(model: VehicleBrandDto) {\r\n return Http.post('vehiclebrands', model);\r\n }\r\n\r\n public update(model: VehicleBrandDto) {\r\n return Http.put('vehiclebrands', model);\r\n }\r\n\r\n public remove(model: VehicleBrandDto) {\r\n return Http.put('vehiclebrands/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new VehicleBrandsService();","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { VehicleModelsSearchCriteria } from './models/VehicleModelsSearchCriteria';\r\nimport { VehicleModelsDto } from './models/VehicleModelsDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogModelsSearchCriteria } from 'api/catalog/models/CatalogModelsSearchCriteria';\r\n\r\nclass VehicleModelsService {\r\n public getList(criteria: VehicleModelsSearchCriteria) {\r\n return Http.get>('vehiclemodels', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogModelsSearchCriteria) {\r\n return Http.get('vehiclemodels/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('vehiclemodels/' + id);\r\n }\r\n\r\n public create(model: VehicleModelsDto) {\r\n return Http.post('vehiclemodels', model);\r\n }\r\n\r\n public update(model: VehicleModelsDto) {\r\n return Http.put('vehiclemodels', model);\r\n }\r\n\r\n public remove(model: VehicleModelsDto) {\r\n return Http.put('vehiclemodels/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new VehicleModelsService();","export enum VehicleCondition {\r\n NEW = 'NEW',\r\n USED = 'USED'\r\n}\r\n","export default __webpack_public_path__ + \"static/media/Arrow-grey.e793343c.svg\";","import { useRef } from 'react';\r\nimport DateTimePicker, { Props as DateTimePickerProps } from './DateTimePicker';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\nimport moment from 'moment';\r\nimport { DATE_FORMAT_DEFAUT } from 'Config';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n onChange: any;\r\n rules?: Exclude;\r\n} & DateTimePickerProps;\r\n\r\nconst DateTimePickerController = ({ form, name, rules, onChange, dateFormat, ...props }: Props) => {\r\n const ref = useRef(null);\r\n return (\r\n {\r\n return (\r\n {\r\n onChangeCtrl(date);\r\n if (onChange) {\r\n onChange(date)\r\n }\r\n }}\r\n value={value ? moment(value).format(Array.isArray(dateFormat) ? dateFormat[0]: dateFormat ?? DATE_FORMAT_DEFAUT) : undefined}\r\n />\r\n );\r\n }}\r\n onFocus={() => (ref.current as any).input.focus()}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) ? moment(form.getValues(name)).format(Array.isArray(dateFormat) ? dateFormat[0]: dateFormat ?? DATE_FORMAT_DEFAUT) : undefined}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default DateTimePickerController;\r\n","import React from 'react';\r\nimport Input, { Props as InputProps } from './Input';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n rules?: Exclude;\r\n} & InputProps;\r\n\r\nconst InputController = ({ form, name, rules, ...props }: Props) => {\r\n\r\n return (\r\n {\r\n return (\r\n \r\n );\r\n }}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || ''}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default InputController;\r\n","export default __webpack_public_path__ + \"static/media/desktop_add_new.013f50b4.svg\";","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 13 3 A 1.0001 1.0001 0 0 0 11.986328 4 L 6 4 A 1.0001 1.0001 0 1 0 6 6 L 24 6 A 1.0001 1.0001 0 1 0 24 4 L 18.013672 4 A 1.0001 1.0001 0 0 0 17 3 L 13 3 z M 6 8 L 6 24 C 6 25.105 6.895 26 8 26 L 22 26 C 23.105 26 24 25.105 24 24 L 24 8 L 6 8 z\"\n});\nfunction SvgTrashNoColor(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n width: \"30px\",\n height: \"30px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrashNoColor);\nexport default __webpack_public_path__ + \"static/media/trash_no_color.a01ff1b6.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Col, ColumnSizeType, Row } from 'react-flexbox-grid';\r\nimport FileSaver from 'file-saver';\r\nimport { FaTimesCircle } from 'react-icons/fa';\r\nimport { blobToBase64, blobToText } from 'Config';\r\nimport styles from './FileSelector.module.scss';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport QuestionYesNo from '../questionYesNo/QuestionYesNo';\r\nimport Utils from 'common/services/Utils';\r\nimport Label from 'common/components/label/Label';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Button from '../button/Button';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\ntype ColSize = {\r\n xs?: ColumnSizeType;\r\n sm?: ColumnSizeType;\r\n md?: ColumnSizeType;\r\n lg?: ColumnSizeType;\r\n xl?: ColumnSizeType,\r\n}\r\n\r\ntype Props = {\r\n accept?: string;\r\n container?: string;\r\n isMulti?: boolean;\r\n isDetails?: boolean;\r\n initialFiles?: CustomFile[];\r\n onFilesChanged: (files: CustomFile[]) => void;\r\n addButtonSizes?: ColSize;\r\n fileButtonSizes?: ColSize;\r\n onRemoveFile?: (file: CustomFile) => void;\r\n filesListClassName?: string;\r\n smallButtonAdd?: boolean;\r\n label?: JSX.Element;\r\n inLine?: boolean;\r\n iconButton?: string;\r\n};\r\n\r\nconst FileSelector: React.FC = ({\r\n accept, container, onFilesChanged, isMulti = false, initialFiles = [], isDetails = false,\r\n addButtonSizes = { xs: 6, sm: 4, md: 3, lg: 2 }, fileButtonSizes = { sm: 6, md: 4, lg: 3, xl: 2 }, onRemoveFile,\r\n filesListClassName, smallButtonAdd, label, inLine = false, iconButton, ...props\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const [files, setFiles] = useState([]);\r\n const [selectedFile, setSelectedFile] = useState(null);\r\n const [selectedFileIndex, setSelectedFileIndex] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const fileRef = useRef(null);\r\n\r\n const importFile = () => {\r\n if (!fileRef.current) {\r\n return;\r\n }\r\n\r\n fileRef.current!.click();\r\n }\r\n\r\n const getData = async () => {\r\n if (initialFiles.length > 0) {\r\n initialFiles.map(file => { file.urlBase64 = file.url; file.key = file.id; });\r\n setFiles(initialFiles);\r\n }\r\n }\r\n\r\n const uploadFile = async (event: any) => {\r\n const m: CustomFile[] = [];\r\n for (let size = 0; size < event.target.files.length; size++) {\r\n const file: CustomFile = event.target.files[size];\r\n if (accept?.includes('svg')) {\r\n file.svg = await blobToText(file);\r\n }\r\n else {\r\n file.urlBase64 = await blobToBase64(file);\r\n }\r\n file.key = Utils.newGuid();\r\n if (container) {\r\n file.containerName = container;\r\n }\r\n m.push(file);\r\n }\r\n\r\n setFiles([...files, ...m]);\r\n onFilesChanged([...files, ...m]);\r\n }\r\n\r\n const renderWithouFile = (): JSX.Element => {\r\n return
{t('common.without_file')}
\r\n }\r\n\r\n const renderAddFile = (): JSX.Element => {\r\n return \r\n {smallButtonAdd ?\r\n
\r\n {label && label}\r\n \r\n
\r\n :\r\n
\r\n \r\n
}\r\n\r\n \r\n }\r\n\r\n const renderListFile = (file: CustomFile, index: number) => {\r\n return (\r\n \r\n
openFile(file)}>\r\n \r\n {!isDetails && { e.stopPropagation(); removeFile(file, index) }} />}\r\n
\r\n \r\n );\r\n }\r\n\r\n const renderSingleFile = (): JSX.Element => {\r\n return (\r\n <>\r\n {!files?.length && !isDetails && renderAddFile()}\r\n \r\n {files?.length ? renderListFile(files[0], 0) : (isDetails ? renderWithouFile() : null)}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderMultipleFile = (): JSX.Element => {\r\n return <>\r\n {inLine ?\r\n <>\r\n {!isDetails &&\r\n \r\n {!isDetails && renderAddFile()}\r\n }\r\n\r\n \r\n \r\n {!files?.length && isDetails\r\n ? renderWithouFile()\r\n : files.map(renderListFile)\r\n }\r\n \r\n \r\n\r\n \r\n :\r\n <>\r\n {!isDetails && renderAddFile()}\r\n \r\n {!files?.length && isDetails\r\n ? renderWithouFile()\r\n : files.map(renderListFile)\r\n }\r\n \r\n \r\n }\r\n \r\n }\r\n\r\n const openFile = (file: CustomFile) => {\r\n if (file.svg) {\r\n const blob = new Blob([file.svg], { type: 'image/svg+xml' });\r\n FileSaver.saveAs(blob, file.name);\r\n return;\r\n }\r\n FileSaver.saveAs(file.url ?? file, file.name);\r\n }\r\n\r\n const removeFile = (file: CustomFile, index: number) => {\r\n setSelectedFile(file);\r\n setSelectedFileIndex(index);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setShowRemoveModal(false);\r\n }\r\n\r\n const onRemove = () => {\r\n setShowRemoveModal(false);\r\n\r\n if (selectedFileIndex === null || !selectedFile) { return; }\r\n\r\n if (onRemoveFile) { onRemoveFile(selectedFile); }\r\n const newFiles = [...files.filter((_, i) => i !== selectedFileIndex)];\r\n\r\n setFiles(newFiles);\r\n onFilesChanged(newFiles);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [initialFiles]);\r\n\r\n return (\r\n
\r\n {inLine ?\r\n \r\n {isDetails && !!label && label}\r\n {isMulti && renderMultipleFile()}\r\n {!isMulti && renderSingleFile()}\r\n \r\n :\r\n
\r\n {isDetails && !!label && label}\r\n {isMulti && renderMultipleFile()}\r\n {!isMulti && renderSingleFile()}\r\n
\r\n }\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default FileSelector;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './TechnicalInformationFormItem.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED } from 'Config';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { UseFormMethods } from 'react-hook-form';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport Label from 'common/components/label/Label';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\n\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails?: boolean\r\n onRemoveClick: () => void;\r\n index: number;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst TechnicalInformationFormItem: React.FC = ({\r\n form,\r\n isDetails,\r\n onRemoveClick,\r\n index,\r\n ...props\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n const errors = (form.errors?.technicalInformations || [])[index] || null;\r\n \r\n form.setValue(`technicalInformations[${index}].index`, index);\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n form.setValue(`technicalInformations[${index}].attachments`, files);\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(form.getValues(`technicalInformations[${index}].attachmentsToRemove` as any) || []), file.id];\r\n form.setValue(`technicalInformations[${index}].attachmentsToRemove`, arr);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isDetails &&\r\n \r\n
\r\n \r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default TechnicalInformationFormItem;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './TechnicalInformationForm.module.scss';\r\nimport { useFieldArray, UseFormMethods } from 'react-hook-form';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { VehicleTechnicalInformationViewModel, VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport TechnicalInformationFormItem from '../technicalInformationFormItem/TechnicalInformationFormItem';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails: boolean;\r\n onRemoveTechnicalInformation: (id: string) => void;\r\n};\r\n\r\nconst TechnicalInformationForm: React.FC = ({ form, isDetails, onRemoveTechnicalInformation }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const technicalInformations = useFieldArray({ control: form.control, name: 'technicalInformations', keyName: 'formId' as any });\r\n const [showRemoveTechnicalInformation, setShowRemoveTechnicalInformation] = useState(false);\r\n const [technicalInformationToRemoveIndex, setTechnicalInformationToRemoveIndex] = useState(null);\r\n\r\n\r\n const addTechnicalInformation = () => {\r\n technicalInformations.append({\r\n id: null,\r\n description: '',\r\n attachments: [],\r\n index: technicalInformations.fields.length\r\n });\r\n }\r\n\r\n const removeItem = () => {\r\n if (technicalInformationToRemoveIndex === null) return;\r\n\r\n if (technicalInformations.fields[technicalInformationToRemoveIndex]?.id) {\r\n onRemoveTechnicalInformation(technicalInformations.fields[technicalInformationToRemoveIndex].id!);\r\n }\r\n\r\n technicalInformations.remove(technicalInformationToRemoveIndex);\r\n\r\n setShowRemoveTechnicalInformation(false);\r\n }\r\n\r\n const setRemoveItem = (index: number) => {\r\n setShowRemoveTechnicalInformation(true);\r\n setTechnicalInformationToRemoveIndex(index);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
{t('vehicle.technical_information')}
\r\n {!isDetails &&
\r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n\r\n {technicalInformations.fields.length === 0 &&
\r\n {t('vehicle.without_technical_information')}\r\n
}\r\n\r\n {technicalInformations.fields.length > 0 &&
\r\n {technicalInformations.fields.map((ti, index) => {\r\n return (\r\n {\r\n setRemoveItem(index);\r\n }}\r\n index={index}\r\n\r\n />\r\n );\r\n })}\r\n
}\r\n\r\n removeItem()}\r\n onNo={() => { setShowRemoveTechnicalInformation(false); setTechnicalInformationToRemoveIndex(null) }}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default TechnicalInformationForm;\r\n","import { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Http from 'common/services/Http';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { CatalogDriversSearchCriteria } from 'api/catalog/models/CatalogDriversSearchCriteria';\r\nimport { DriversListItemDto } from './models/DriversListItemDto';\r\nimport { DriversSearchCriteria } from './models/DriversSearchCriteria';\r\nimport { DriversTotalsDto } from './models/DriversTotalsDto';\r\n\r\nclass DriversService {\r\n\r\n public catalog(criteria?: CatalogDriversSearchCriteria) {\r\n return Http.get('drivers/catalog', criteria);\r\n }\r\n\r\n public getList(criteria: DriversSearchCriteria) {\r\n return Http.get>('drivers', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('drivers/' + id);\r\n }\r\n\r\n public getTotals(criteria?: DriversSearchCriteria) {\r\n return Http.get('drivers/totals', criteria || { page: 1, itemsPerPage: 9999999 });\r\n }\r\n}\r\n\r\nexport default new DriversService();\r\n","export default __webpack_public_path__ + \"static/media/mobile_close.b70c24fb.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport QRCode from 'react-qr-code';\r\nimport styles from './QRCode.module.scss';\r\nimport Modal from 'react-modal';\r\nimport CloseIcon from 'assets/svg/mobile_close.svg';\r\n\r\n\r\ntype Props = {\r\n label?: string;\r\n value?: string;\r\n emptyMessage?: string;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst QrCode: React.FC = ({ label, value , emptyMessage }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const [qrCodeModalIsOpen, setQrCodeModalIsOpen] = React.useState(false);\r\n\r\n const showRemoveItemDialog = () => {\r\n setQrCodeModalIsOpen(true);\r\n };\r\n\r\n const customStyles = {\r\n content: {\r\n top: '15%',\r\n left: '35%',\r\n right: '35%',\r\n bottom: 'auto',\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\r\n }\r\n };\r\n\r\n\r\n return (\r\n <>
showRemoveItemDialog()}>\r\n \r\n
\r\n {value && }\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n setQrCodeModalIsOpen(false)} style={{ width: '1rem', height: '1rem' }} />\r\n
\r\n
\r\n {value && }\r\n {!value && emptyMessage}\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default QrCode;\r\n","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { LocalSearchCriteria } from './models/LocalSearchCriteria';\r\nimport { LocalDto } from './models/LocalDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogLocalSearchCriteria } from 'api/catalog/models/CatalogLocalSearchCriteria';\r\n\r\nclass LocalsService {\r\n\r\n public getList(criteria: LocalSearchCriteria) {\r\n return Http.get>('locals', criteria);\r\n }\r\n \r\n public catalog(criteria?: CatalogLocalSearchCriteria) {\r\n return Http.get('locals/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('locals/' + id);\r\n }\r\n\r\n public create(model: LocalDto, logo: CustomFile[]) {\r\n return Http.postWithFile('locals', model, logo);\r\n }\r\n\r\n public update(model: LocalDto, logo: CustomFile[]) {\r\n return Http.putWithFile('locals', model, logo);\r\n }\r\n\r\n public remove(model: LocalDto) {\r\n return Http.put('locals/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new LocalsService();","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './VehicleFuelFormItem.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { FUELS, removeAccents } from 'Config';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\nimport Label from 'common/components/label/Label';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails?: boolean\r\n onRemoveClick: () => void;\r\n index: number;\r\n mode?: string;\r\n fuelsOptions: SelectValueLabel[];\r\n setFuelReRender: () => void;\r\n vehicleFuelsCounter: number,\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst VehicleFuelFormItem: React.FC = ({\r\n form,\r\n isDetails,\r\n onRemoveClick,\r\n index,\r\n mode,\r\n fuelsOptions,\r\n setFuelReRender,\r\n vehicleFuelsCounter,\r\n ...props\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n const errors = (form.errors?.vehicleFuels || [])[index] || null;\r\n\r\n form.setValue(`vehicleFuels[${index}].index`, index);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n form.setValue(`vehicleFuels[${index}].fuelId`, data ? data.value : null);\r\n setFuelReRender();\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n x.value == form.getValues(`vehicleFuels[${index}].fuelId`))?.fullLabel == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any)}\r\n text={t((fuelsOptions.find(x => x.value == form.getValues(`vehicleFuels[${index}].fuelId`))?.fullLabel == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any)}\r\n value={form.getValues(`vehicleFuels[${index}].consommationMoyenneReference`)}\r\n onValueChange={value => {\r\n form.setValue(`vehicleFuels[${index}].consommationMoyenneReference`, value);\r\n }}\r\n disabled={mode === 'details'} />\r\n );\r\n }}\r\n control={form.control}\r\n name={`vehicleFuels[${index}].consommationMoyenneReference`}\r\n />\r\n \r\n \r\n {!isDetails && vehicleFuelsCounter > 1 &&\r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default VehicleFuelFormItem;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './VehicleFuelForm.module.scss';\r\nimport { useFieldArray, UseFormMethods } from 'react-hook-form';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport VehicleFuelFormItem from '../vehicleFuelFormItem/VehicleFuelFormItem';\r\nimport { VehicleFuelViewModel, VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { FaInfoCircle } from 'react-icons/fa';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails: boolean;\r\n mode?: string;\r\n fuelsOptions: SelectValueLabel[];\r\n};\r\n\r\nconst VehicleFuelForm: React.FC = ({ form, isDetails, fuelsOptions, mode }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const vehicleFuels = useFieldArray({ control: form.control, name: 'vehicleFuels', keyName: 'formId' as any });\r\n const [showRemoveVehicleFuel, setShowRemoveVehicleFuel] = useState(false);\r\n const [vehicleFuelToRemoveIndex, setVehicleFuelToRemoveIndex] = useState(null);\r\n const [fuelReRender, setFuelReRender] = useState(0);\r\n\r\n const addVehicleFuel = () => {\r\n vehicleFuels.append({\r\n consommationMoyenneReference: 0\r\n });\r\n }\r\n\r\n const removeItem = () => {\r\n if (vehicleFuelToRemoveIndex === null) return;\r\n vehicleFuels.remove(vehicleFuelToRemoveIndex);\r\n setShowRemoveVehicleFuel(false);\r\n }\r\n\r\n const setRemoveItem = (index: number) => {\r\n setShowRemoveVehicleFuel(true);\r\n setVehicleFuelToRemoveIndex(index);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
{t('vehicle.vehicle_fuels')}\r\n \r\n \r\n \r\n \r\n
\r\n {!isDetails &&
\r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n\r\n {vehicleFuels.fields.length === 0 &&
\r\n {t('vehicle.without_fuels')}\r\n
}\r\n\r\n {vehicleFuels.fields.length > 0 &&
\r\n {vehicleFuels.fields.map((ti, index) => {\r\n return (\r\n {\r\n setRemoveItem(index);\r\n }}\r\n index={index}\r\n mode={mode}\r\n fuelsOptions={fuelsOptions}\r\n setFuelReRender={()=>{ setFuelReRender(fuelReRender+1);}}\r\n vehicleFuelsCounter={vehicleFuels.fields.length}\r\n />\r\n );\r\n })}\r\n
}\r\n\r\n removeItem()}\r\n onNo={() => { setShowRemoveVehicleFuel(false); setVehicleFuelToRemoveIndex(null) }}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default VehicleFuelForm;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { CatalogBrandsSearchCriteria } from 'api/catalog/models/CatalogBrandsSearchCriteria';\r\nimport { CatalogModelsSearchCriteria } from 'api/catalog/models/CatalogModelsSearchCriteria';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport VehicleModelsService from 'api/vehicleModels/VehicleModelsService';\r\nimport { VehicleCondition } from 'api/vehicles/enums/VehicleCondition';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Box from 'common/components/box/Box';\r\nimport Button from 'common/components/button/Button';\r\nimport DateTimePickerController from 'common/components/dateTimePicker/DateTimePickerController';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, SEGMENT_FEATURES, removeAccents } from 'Config';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Types as CloseType } from 'screens/vehicle/VehicleScreen';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './CarForm.module.scss';\r\nimport TechnicalInformationForm from './technicalInformationForm/TechnicalInformationForm';\r\nimport Label from 'common/components/label/Label';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector';\r\nimport QrCode from 'common/components/qrCode/QRCode';\r\nimport Select from 'common/components/select/Select';\r\nimport { LocalBasicInfoViewModel } from 'api/locals/models/LocalViewModel';\r\nimport LocalsService from 'api/locals/LocalsService';\r\nimport VehicleFuelForm from './vehicleFuelForm/VehicleFuelForm';\r\nimport Input from 'common/components/input/Input';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\nimport { CatalogSegmentsSearchCriteria } from 'api/catalog/models/CatalogSegmentsSearchCriteria';\r\n\r\ntype Props = {\r\n item?: VehicleViewModel;\r\n mode?: string;\r\n onCancel: (value?: CloseType, id?: any) => void;\r\n\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst CarForm: React.FC = ({ item, mode, onCancel }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm({ shouldUnregister: false, defaultValues: item ? item : { vehicleFuels: [] } });\r\n const { handleSubmit, setValue, control, register, errors, watch, getValues } = form;\r\n const history = useHistory();\r\n\r\n const { returnUrl } = useParams<{ returnUrl: string }>();\r\n\r\n const [segmentFeatures, setSegmentFeatures] = useState([]);\r\n const [localsOptions, setLocalsOptions] = useState([]);\r\n const [brandsOptions, setBrandsOptions] = useState([]);\r\n const [modelsOptions, setModelsOptions] = useState([]);\r\n const [typesOptions, setTypesOptions] = useState([]);\r\n const [fuelsOptions, setFuelsOptions] = useState([]);\r\n const [fuelSuppliersOptions, setFuelSuppliersOptions] = useState([]);\r\n const [colorsOptions, setColorsOptions] = useState([]);\r\n const [trackingDevicesOptions, setTrackingDevicesOptions] = useState([]);\r\n const [isLoadingDevicesList, setIsLoadingDevicesList] = useState(false);\r\n\r\n const [selectedCondition, setSelectedCondition] = useState('');\r\n const [conditionIsSelected, setConditionIsSelected] = useState(true);\r\n const [medias, setMedias] = useState([]);\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [itemToActivate, setItemToActivate] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [dialogActivateItemIsOpen, setDialogActivateItemIsOpen] = React.useState(false);\r\n const [registrationAlreadyExists, setRegistrationAlreadyExists] = useState(undefined);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehiclesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLES_WRITE']);\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n\r\n const [technicalInformationsIdsToRemove, setTechnicalInformationsIdsToRemove] = useState([]);\r\n\r\n const conditionsOptions: VehicleCondition[] = [\r\n VehicleCondition.NEW,\r\n VehicleCondition.USED\r\n ];\r\n\r\n const getData = async () => {\r\n Loading.show();\r\n\r\n try {\r\n setIsLoadingDevicesList(true);\r\n const trackingDevices = await TrackingService.getDevicesList();\r\n setTrackingDevicesOptions(Utils.sortAlphabetically(trackingDevices.map(x => ({ value: x.id, label: x.name }))));\r\n setIsLoadingDevicesList(false);\r\n\r\n } catch (err) {\r\n addToast(`${t('common.errors.tracking_auth')}. \\n${t('common.messages.contact_admin')}`, { appearance: 'warning' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Provider Authentication Error - wrong credencials`, err);\r\n setIsLoadingDevicesList(false);\r\n }\r\n\r\n try {\r\n const [\r\n brands,\r\n models,\r\n types,\r\n fuels,\r\n fuelSuppliers,\r\n colors,\r\n drivers,\r\n locals\r\n ] = await Promise.all([\r\n VehicleBrandsService.catalog(),\r\n VehicleModelsService.catalog(),\r\n VehicleSegmentsService.catalog(),\r\n VehiclesService.getFuelList(),\r\n SuppliersService.getFuelSuppliers(),\r\n VehiclesService.getColorsList(),\r\n DriversService.catalog(),\r\n LocalsService.catalog()\r\n ]);\r\n\r\n setBrandsOptions(brands);\r\n setModelsOptions(models);\r\n setTypesOptions(types);\r\n setFuelsOptions(Utils.sortAlphabetically(fuels.map(x => ({ value: x.value, label: (t(('vehicle.fuels.' + x.label) as any)), fullLabel: x.label }))));\r\n setFuelSuppliersOptions(fuelSuppliers);\r\n setColorsOptions(Utils.sortAlphabetically(colors.map(x => ({ value: x.value, label: (t(('vehicle.colors.' + x.label) as any)) }))));\r\n\r\n setLocalsOptions(locals);\r\n\r\n if (item?.driverId && !drivers?.find(x => x.value == item.driverId)) {\r\n drivers.unshift({ value: item.driverId, label: item.driverName ?? '' });\r\n setDriversOptions(Utils.sortAlphabeticallyByKey(drivers, 'label'));\r\n }\r\n else {\r\n setDriversOptions(drivers);\r\n }\r\n\r\n if (item) {\r\n getSegmentFeatures();\r\n setSelectedCondition(item.condition);\r\n if (selectedCondition && selectedCondition != '') {\r\n setConditionIsSelected(true);\r\n }\r\n }\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get information to create vehicle`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const getSegmentFeatures = async () => {\r\n try {\r\n const features = await VehicleSegmentsService.getFeatures(form.getValues('vehicleSegmentId'));\r\n setSegmentFeatures(features);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get segment features`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getSegmentsByBrand = async (brandId?: string) => {\r\n try {\r\n const segments = await VehicleSegmentsService.catalog({ brandId } as CatalogSegmentsSearchCriteria);\r\n setTypesOptions(segments);\r\n\r\n if (!form.getValues('vehicleSegmentId') && segments.length == 1) {\r\n setValue('vehicleSegmentId', segments.find(x => x.value)?.value);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get segments by brand`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getBrandsBySegment = async () => {\r\n getSegmentFeatures();\r\n try {\r\n const brands = await VehicleBrandsService.catalog({ segmentId: form.getValues('vehicleSegmentId') } as CatalogBrandsSearchCriteria);\r\n setBrandsOptions(brands);\r\n\r\n if (form.getValues('vehicleSegmentId') && !brands?.length) {\r\n setModelsOptions([]);\r\n setValue('vehicleBrandId', null);\r\n setValue('vehicleModelId', null);\r\n return;\r\n }\r\n\r\n if (!form.getValues('vehicleBrandId') && brands.length == 1) {\r\n const brand = brands.find(x => x.value)?.value\r\n setValue('vehicleBrandId', brand);\r\n getModelByBrand(brand);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get brands of segment`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getBrandByModel = async () => {\r\n try {\r\n const brand = await VehicleBrandsService.catalog({ modelId: form.getValues('vehicleModelId') } as CatalogBrandsSearchCriteria);\r\n setBrandsOptions(brand);\r\n\r\n let brandId = form.getValues('vehicleBrandId');\r\n if (!brandId && brand.length == 1) {\r\n brandId = brand.find(x => x.value)!.value\r\n setValue('vehicleBrandId', brandId);\r\n getModelByBrand();\r\n }\r\n getSegmentsByBrand(brandId);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get brands of model`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getModelByBrand = async (brandId?: string) => {\r\n if (form.getValues('vehicleSegmentId') && !brandsOptions?.length && !brandId) {\r\n setModelsOptions([]);\r\n return;\r\n }\r\n\r\n brandId = brandId || form.getValues('vehicleBrandId');\r\n\r\n try {\r\n const models = await VehicleModelsService.catalog({ brandId } as CatalogModelsSearchCriteria);\r\n setModelsOptions(models);\r\n\r\n if (!form.getValues('vehicleModelId') && models.length == 1) {\r\n setValue('vehicleModelId', models.find(x => x.value)?.value);\r\n if (!brandId) {\r\n getBrandByModel();\r\n }\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get models of brand`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const onSubmit = async (form: VehicleViewModel) => {\r\n\r\n const mediasToSubmit: CustomFile[] = [];\r\n\r\n try {\r\n if (!selectedCondition) {\r\n setConditionIsSelected(false);\r\n }\r\n\r\n if ((!form.vehicleSegmentId || !typesOptions.find(x => x.value === form.vehicleSegmentId))\r\n || !form.registrationNumber\r\n || !selectedCondition\r\n || (showField(SEGMENT_FEATURES.FUEL) && !form.vehicleFuels?.filter(x => x.fuelId)?.length)\r\n ) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n let fuelsRepeated = false;\r\n if ((form.vehicleFuels?.length ?? 0) > 1) {\r\n form.vehicleFuels?.forEach((x, i) => {\r\n if (!fuelsRepeated) {\r\n fuelsRepeated = (form.vehicleFuels?.filter(z => z.fuelId == x.fuelId)?.length ?? 0) > 1;\r\n }\r\n })\r\n\r\n if (fuelsRepeated) {\r\n addToast(t('vehicle.fuels_repeated'), { appearance: 'warning' });\r\n return;\r\n }\r\n }\r\n\r\n Loading.show();\r\n\r\n const model: VehicleDto = {\r\n id: form.id,\r\n registrationNumber: form.registrationNumber,\r\n registrationNumberDate: form.registrationNumberDate,\r\n vehicleBrandId: form.vehicleBrandId,\r\n vehicleModelId: form.vehicleModelId,\r\n vehicleSegmentId: form.vehicleSegmentId,\r\n condition: selectedCondition,\r\n colorId: form.colorId,\r\n removeAttachment: form.removeAttachment,\r\n currentKilometers: form.currentKilometers,\r\n trackingDeviceId: form.trackingDeviceId,\r\n totalCostCharges: form.totalCostCharges,\r\n totalCostMaintenances: form.totalCostMaintenances,\r\n totalCostContracts: form.totalCostContracts,\r\n fuelCard: form.fuelCard,\r\n fuelCardSupplierId: form.fuelCardSupplierId,\r\n averageTargetMonth: form.averageTargetMonth,\r\n fiscalPower: form.fiscalPower,\r\n dateCirculation: form.dateCirculation,\r\n reservationAvailable: form.reservationAvailable ?? false,\r\n defaultDriverId: form.defaultDriverId,\r\n technicalInformations: form.technicalInformations,\r\n vehicleLocals: form.vehicleLocals,\r\n vehicleFuels: showField(SEGMENT_FEATURES.FUEL) ? form.vehicleFuels : undefined,\r\n active: true\r\n };\r\n\r\n if (form.technicalInformations) {\r\n form.technicalInformations.forEach(ti => {\r\n ti.attachments.forEach(a => {\r\n mediasToSubmit.push(a);\r\n })\r\n })\r\n }\r\n if (form.photo) {\r\n form.photo.forEach(p => {\r\n mediasToSubmit.push(p);\r\n })\r\n }\r\n\r\n const tempModel = { ...model, technicalInformationsIdsToRemove };\r\n\r\n if (!item) {\r\n const createId = await VehiclesService.create(tempModel, mediasToSubmit);\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n navigateTo('details', createId);\r\n } else {\r\n model.id = item.id;\r\n await VehiclesService.update(tempModel, mediasToSubmit);\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n navigateTo();\r\n }\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(showField(SEGMENT_FEATURES.KM) ? t('common.messages.registration_number_already_exists') : t('common.messages.indentification_number_already_exists') , { appearance: 'warning' });\r\n setRegistrationAlreadyExists(form.registrationNumber);\r\n return;\r\n }\r\n\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (mode == 'edit') {\r\n if (Boolean(item)) {\r\n //form.reset(item);\r\n getData();\r\n }\r\n onCancel(mode, item?.id);\r\n }\r\n else {\r\n if (type) {\r\n history.push(`/vehicles/${type}/${id}`);\r\n } else {\r\n if (returnUrl) {\r\n history.push(`/${returnUrl}`);\r\n } else {\r\n history.push(`/vehicles`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const renderConditionItem = (name: string, onClick: () => void, isSelected: boolean, key: number) => (\r\n \r\n
\r\n
\r\n {name}\r\n
\r\n
\r\n
\r\n );\r\n\r\n const onSelectCondition = (type: any) => {\r\n if (mode !== 'details' && type) {\r\n setSelectedCondition(type || null);\r\n }\r\n if (item) {\r\n item.condition == type;\r\n\r\n if (type == VehicleCondition.NEW) {\r\n item.condition = VehicleCondition.USED;\r\n }\r\n }\r\n onSubmit;\r\n }\r\n\r\n const showRemoveItemDialog = (_item: VehicleViewModel) => {\r\n setItemToRemove(_item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await VehiclesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_deactivate_success'), { appearance: 'success' });\r\n history.push(`/vehicles`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_deactivate_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const showActivateItemDialog = (_item: VehicleViewModel) => {\r\n setItemToActivate(_item);\r\n setDialogActivateItemIsOpen(true);\r\n };\r\n\r\n\r\n const activateItem = async () => {\r\n setDialogActivateItemIsOpen(false);\r\n if (!!itemToActivate) {\r\n try {\r\n Loading.show();\r\n await VehiclesService.activate(itemToActivate);\r\n addToast(t('common.messages.record_activate_success'), { appearance: 'success' });\r\n history.push(`/vehicles`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_activate_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const onAddMedias = (_medias: CustomFile[]) => {\r\n setMedias(_medias);\r\n setValue('photo', _medias);\r\n }\r\n\r\n const onRemoveMedia = (mediaId: string) => {\r\n // mediaId is not enough because after submit and getData, mediaId that come from db is different than submited mediaId\r\n const filteredMedia = [...medias.filter(x => x.id != mediaId && x.containerName != 'vehiclePhoto')];\r\n setValue('photo', filteredMedia);\r\n setValue('removeAttachment', true);\r\n setMedias(filteredMedia);\r\n }\r\n\r\n const onRemoveTechnicalInformation = (id: string) => {\r\n if (id) {\r\n setTechnicalInformationsIdsToRemove([...technicalInformationsIdsToRemove, id]);\r\n }\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n form.reset(item);\r\n }, [item]);\r\n\r\n useEffect(() => {\r\n form.setValue('defaultDriverId', undefined);\r\n }, [form.watch('reservationAvailable')]);\r\n\r\n useEffect(() => {\r\n if (showField(SEGMENT_FEATURES.FUEL) && !form.getValues('vehicleFuels')?.length) {\r\n form.setValue('vehicleFuels', [{ }]);\r\n }\r\n }, [segmentFeatures]);\r\n\r\n return (\r\n
\r\n \r\n {!item && mode != 'edit' && mode != 'details' &&
\r\n navigateTo()} /> {t('vehicle.new')}\r\n
}\r\n\r\n {item && (mode == 'edit') &&
\r\n navigateTo()} /> {t('vehicle.car_document')}\r\n
}\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {t('vehicle.vehicle_info')}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n {/* foto */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* tipo */}\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleSegmentId', data ? data.value : null);\r\n getBrandsBySegment();\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n {/* marca */}\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleBrandId', data ? data.value : null);\r\n getModelByBrand();\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n\r\n {/* modelo */}\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleModelId', data ? data.value : null);\r\n getBrandByModel();\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n {/* matricula */}\r\n \r\n \r\n \r\n \r\n \r\n {!!registrationAlreadyExists && registrationAlreadyExists == form.getValues('registrationNumber') &&
{showField(SEGMENT_FEATURES.KM) ? t('common.messages.registration_number_already_exists') : t('common.messages.indentification_number_already_exists') }
}\r\n
\r\n \r\n\r\n {/* data matricula */}\r\n {showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n {\r\n setValue('registrationNumberDate', date);\r\n }}\r\n selected={watch('registrationNumberDate')}\r\n dateFormat=\"MM/yyyy\"\r\n customInput={} />}\r\n name=\"registrationNumberDate\"\r\n autoComplete='off'\r\n showMonthYearPicker\r\n disabled={mode === 'details'}\r\n />\r\n \r\n \r\n }\r\n\r\n\r\n {/* data circulacao */}\r\n {showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n { }}\r\n dateFormat=\"DD/MM/yyyy\"\r\n customInput={} />}\r\n name=\"dateCirculation\"\r\n autoComplete='off'\r\n rules={{ required: false }}\r\n disabled={mode === 'details'}\r\n />\r\n \r\n }\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {/* QRCode */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* condicao */}\r\n \r\n \r\n \r\n
\r\n {conditionsOptions.map((c, i) => {\r\n const isSelected = c === selectedCondition ? true : false;\r\n const label = c ? t(('vehicle.conditions.' + c) as any) : '';\r\n return renderConditionItem(label, () => onSelectCondition(c), isSelected, i);\r\n\r\n })}\r\n
\r\n\r\n {(!conditionIsSelected) && }\r\n\r\n
\r\n \r\n\r\n {/* cor */}\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('colorId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n {/* Moyenne objectif mois */}\r\n {showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('averageTargetMonth', value);\r\n }}\r\n disabled={mode === 'details'} />\r\n );\r\n }}\r\n control={control}\r\n name=\"averageTargetMonth\"\r\n defaultValue={form.getValues('averageTargetMonth')}\r\n />\r\n \r\n }\r\n
\r\n \r\n
\r\n\r\n \r\n {/* poder fiscal */}\r\n {showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {/* disponivel para reservar */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* condutor por defeito */}\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('defaultDriverId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n\r\n\r\n {/* agência */}\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ({ localId: x.value })));\r\n }}\r\n value={value ? localsOptions.filter(x => value.find((y: LocalBasicInfoViewModel) => y.localId === x.value)) : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"vehicleLocals\"\r\n defaultValue={getValues('vehicleLocals')} />\r\n \r\n \r\n \r\n\r\n {/* cartao combustivel */}\r\n {showField(SEGMENT_FEATURES.FUEL) && \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {showField(SEGMENT_FEATURES.FUEL) && \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('fuelCardSupplierId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n }\r\n\r\n {((item?.companyTrackingProvider && item?.companyTrackingProvider !== TrackingProvider.NONE) || (userProfile?.trackingProvider && userProfile?.trackingProvider !== TrackingProvider.NONE)) && \r\n \r\n \r\n {!isLoadingDevicesList && input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />}\r\n {isLoadingDevicesList && }\r\n \r\n }\r\n \r\n
\r\n\r\n {showField(SEGMENT_FEATURES.FUEL) && \r\n \r\n }\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {(returnUrl || mode === 'edit') && navigateTo()}\r\n text={t('common.cancel')}\r\n />}\r\n {item && item.active && mode === ('details') && hasVehiclesWritePolicy && showRemoveItemDialog({ id: item?.id } as VehicleViewModel)} />}\r\n\r\n\r\n {item && !item.active && mode === ('details') && hasVehiclesWritePolicy && showActivateItemDialog({ id: item?.id } as VehicleViewModel)} />}\r\n\r\n\r\n {mode === ('details') && item && item.active && hasVehiclesWritePolicy &&\r\n { navigateTo('edit', item?.id); }}\r\n />}\r\n\r\n {hasVehiclesWritePolicy && mode !== ('details') && }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} >\r\n
\r\n {t('vehicle.deactivate_message')}
\r\n {t('common.messages.deactivate_record')}\r\n
\r\n \r\n\r\n\r\n activateItem()}\r\n onNo={() => setDialogActivateItemIsOpen(false)} >\r\n
\r\n {t('common.messages.activate_record')}\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CarForm;","import { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport React from 'react';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport CarForm from '../carForm/CarForm';\r\n\r\ntype Props = {\r\n mode?: string;\r\n item?: VehicleViewModel;\r\n onCancel: (value?: Types, id?: any) => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst CarDocumentTab: React.FC = ({ mode, item, onCancel }: Props) => {\r\n\r\n return (\r\n
\r\n {item && }\r\n
\r\n );\r\n}\r\n\r\nexport default CarDocumentTab;","export enum ContractModel {\r\n INSURANCE = 'INSURANCE',\r\n MAINTENANCE = 'MAINTENANCE',\r\n USE = 'USE'\r\n}\r\n","import Http from '../../../common/services/Http';\r\nimport { Paged } from '../../common/types/Page';\r\nimport { MaintenanceContractsSearchCriteria } from './models/MaintenanceContractsSearchCriteria';\r\nimport { MaintenanceContractDto } from './models/MaintenanceContractDto';\r\nimport CustomFile from '../../../common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogMaintenanceContractsSearchCriteria } from 'api/catalog/models/CatalogMaintenanceContractsSearchCriteria';\r\n\r\nclass MaintenanceContractsService {\r\n\r\n public getList(criteria: MaintenanceContractsSearchCriteria) {\r\n return Http.get>('maintenanceContracts', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogMaintenanceContractsSearchCriteria) {\r\n return Http.get('maintenanceContracts/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('maintenanceContracts/' + id);\r\n }\r\n\r\n public create(model: MaintenanceContractDto, attachment: CustomFile[]) {\r\n return Http.postWithFile('maintenanceContracts', model, attachment);\r\n }\r\n\r\n public update(model: MaintenanceContractDto, attachment: CustomFile[]) {\r\n return Http.putWithFile('maintenanceContracts', model, attachment);\r\n }\r\n\r\n public remove(model: MaintenanceContractDto) {\r\n return Http.put('maintenanceContracts/deactivate', model);\r\n }\r\n\r\n public getMaintenanceContractTypes() {\r\n return Http.get('maintenanceContracts/get-maintenance-contract-types');\r\n }\r\n}\r\n\r\nexport default new MaintenanceContractsService();","import Http from '../../../common/services/Http';\r\nimport { Paged } from '../../common/types/Page';\r\nimport { InsuranceContractsSearchCriteria } from './models/InsuranceContractsSearchCriteria';\r\nimport { InsuranceContractDto } from './models/InsuranceContractDto';\r\nimport CustomFile from '../../../common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogInsuranceContractsSearchCriteria } from 'api/catalog/models/CatalogInsuranceContractsSearchCriteria';\r\n\r\nclass InsuranceContractsService {\r\n\r\n public getList(criteria: InsuranceContractsSearchCriteria) {\r\n return Http.get>('insuranceContracts', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogInsuranceContractsSearchCriteria) {\r\n return Http.get('insuranceContracts/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('insuranceContracts/' + id);\r\n }\r\n\r\n public create(model: InsuranceContractDto, attachment?: CustomFile[]) {\r\n return Http.postWithFile('insuranceContracts', model, attachment ? attachment : []);\r\n }\r\n\r\n public update(model: InsuranceContractDto, attachment?: CustomFile[]) {\r\n return Http.putWithFile('insuranceContracts', model, attachment ? attachment : []);\r\n }\r\n\r\n public remove(model: InsuranceContractDto) {\r\n return Http.put('insuranceContracts/deactivate', model);\r\n }\r\n\r\n public getInsuranceContractTypes() {\r\n return Http.get('insuranceContracts/get-insurance-contract-types');\r\n }\r\n}\r\n\r\nexport default new InsuranceContractsService();","import React, { ReactChild } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport styles from './Dropdown.module.scss';\r\n\r\ntype Props = {\r\n text?: string;\r\n children?: ReactChild | ReactChild[];\r\n onClick?: () => void;\r\n url?: string;\r\n disabled?: boolean;\r\n};\r\n\r\nconst DropdownItem: React.FC = ({ text, children, url, disabled, onClick }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n if (disabled) {\r\n return <>\r\n \r\n {Boolean(text) && text}\r\n {children}\r\n \r\n \r\n \r\n }\r\n\r\n return (\r\n <>\r\n {onClick\r\n ? \r\n {Boolean(text) && text}\r\n {children}\r\n \r\n : \r\n {Boolean(text) && text}\r\n {children}\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default DropdownItem;","import React, { useEffect, useState } from 'react';\r\nimport styles from './ListContractsScreen.module.scss';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ContractModel } from '../../../../../../api/contracts/enums/ContractModel';\r\nimport { UseContractDto } from '../../../../../../api/contracts/useContract/models/UseContractDto';\r\nimport { MaintenanceContractDto } from '../../../../../../api/contracts/maintenanceContract/models/MaintenanceContractDto';\r\nimport { InsuranceContractDto } from '../../../../../../api/contracts/insuranceContract/models/InsuranceContractDto';\r\nimport { UseContractsSearchCriteria } from 'api/contracts/useContract/models/UseContractsSearchCriteria';\r\nimport { MaintenanceContractsSearchCriteria } from 'api/contracts/maintenanceContract/models/MaintenanceContractsSearchCriteria';\r\nimport { InsuranceContractsSearchCriteria } from 'api/contracts/insuranceContract/models/InsuranceContractsSearchCriteria';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport MaintenanceContractsService from 'api/contracts/maintenanceContract/MaintenanceContractsService';\r\nimport InsuranceContractsService from 'api/contracts/insuranceContract/InsuranceContractsService';\r\nimport { useParams } from 'react-router-dom';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport Utils from 'common/services/Utils';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport { ContractStatusColorEnum } from 'api/contracts/enums/ContractStatusColorEnum';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Loading from 'common/services/Loading';\r\n\r\nexport type Props = {\r\n type: ContractModel;\r\n onClickItem: (item: (UseContractDto | MaintenanceContractDto | InsuranceContractDto | any), isDetails: boolean) => void;\r\n createNewContract: () => void;\r\n onListDidLoad: () => void;\r\n onDeleteFromList?: () => void;\r\n editable : boolean;\r\n tourReRender: () => void;\r\n listReRender: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ListContractsScreen = ({ type, editable, onClickItem, createNewContract, onListDidLoad, listReRender, onDeleteFromList, tourReRender, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n\r\n const title = type === ContractModel.USE ? t('contracts.use_contract.title') :\r\n type === ContractModel.MAINTENANCE ? t('contracts.maintenance_contract.title') :\r\n type === ContractModel.INSURANCE ? t('contracts.insurance_contract.title') : '';\r\n\r\n const [list, setList] = useState([]);\r\n\r\n const [criteria, setCriteria] = useState({\r\n page: 1,\r\n itemsPerPage: 15,\r\n vehicleId: vehicleId,\r\n orderColumn: 'start_date',\r\n orderBy: 'asc'\r\n });\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasContractsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CONTRACTS_WRITE']);\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n if (type === ContractModel.USE) {\r\n const useContracts = await UseContractsService.getList(criteria as UseContractsSearchCriteria);\r\n setList(useContracts.items);\r\n }\r\n\r\n if (type === ContractModel.MAINTENANCE) {\r\n const maintenanceContracts = await MaintenanceContractsService.getList(criteria as MaintenanceContractsSearchCriteria);\r\n setList(maintenanceContracts.items);\r\n }\r\n\r\n if (type === ContractModel.INSURANCE) {\r\n const insuranceContracts = await InsuranceContractsService.getList(criteria as InsuranceContractsSearchCriteria);\r\n setList(insuranceContracts.items);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CONTRACTS, `Couldn't get contracts list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally{\r\n tourReRender();\r\n onListDidLoad();\r\n }\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const showRemoveItemDialog = (item: UseContractDto | MaintenanceContractDto | InsuranceContractDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\t\r\n\tconst onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n Loading.show();\r\n if(type === ContractModel.USE) await UseContractsService.remove(itemToRemove as UseContractDto);\r\n if(type === ContractModel.MAINTENANCE) await MaintenanceContractsService.remove(itemToRemove as MaintenanceContractDto);\r\n if(type === ContractModel.INSURANCE) await InsuranceContractsService.remove(itemToRemove as InsuranceContractDto);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n if(onDeleteFromList){\r\n onDeleteFromList();\r\n }\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete contract`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n finally{\r\n Loading.hide();\r\n listReRender();\r\n }\r\n };\r\n\r\n const getTooltipToOtherContracts = (row: UseContractDto | MaintenanceContractDto | InsuranceContractDto) => { \r\n const isRowUseContract = (row as UseContractDto); \r\n const labelMaintenances = Boolean(isRowUseContract?.maintenanceContractIncluded) ? t('contracts.use_contract.maintenance_contracts_associated') + isRowUseContract.maintenanceContractsNumbers : undefined; \r\n const labelInsurance = (Boolean(isRowUseContract?.insuranceIncluded) ? t('contracts.use_contract.insurance_contracts_associated') + isRowUseContract.insuranceContractsNumbers : ''); \r\n return (
\r\n {validateRemoveConfirmation(row) &&
{t('contracts.use_contract.cant_delete_contracts_associated')}
}\r\n {labelMaintenances &&
{labelMaintenances}
}\r\n {labelInsurance &&
{labelInsurance}
}\r\n
);\r\n }\r\n\r\n const validateRemoveConfirmation = (row: UseContractDto | MaintenanceContractDto | InsuranceContractDto) => { \r\n const isRowUseContract = (row as UseContractDto); \r\n //return (Boolean(isRowUseContract?.maintenanceContractsNumbers) || Boolean(isRowUseContract?.insuranceContractsNumbers));\r\n return isRowUseContract.insuranceIncluded || isRowUseContract.maintenanceContractIncluded;\r\n }\r\n\r\n const renderTableActionCell = (\r\n row: UseContractDto | MaintenanceContractDto | InsuranceContractDto) => {\r\n\tconst urlDetails = `/vehicles/details/${vehicleId}/contract/details/${type.toString().toLowerCase()}/details/${row.id}`;\r\n const urlEdit = `/vehicles/details/${vehicleId}/contract/details/${type.toString().toLowerCase()}/edit/${row.id}`;\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { editable && hasContractsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n { editable && hasContractsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n \r\n }\r\n \r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\t\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n name: t('common.start') + ' - ' + t('common.end'),\r\n renderCell: row =>
{row.endDate && <> - }
,\r\n width: '20%',\r\n onSearch: onTableFilter,\r\n searchField: 'start_date'\r\n },\r\n {\r\n name: type === ContractModel.MAINTENANCE ? t('contracts.maintenance_contract.supplier') : (type === ContractModel.INSURANCE) ? t('contracts.insurance_contract.supplier') : t('common.supplier'),\r\n renderCell: row =>
{row.supplierUrl && } {row.supplierName || '-'}
,\r\n width: '15%',\r\n onSearch: onTableFilter,\r\n searchField: 'supplier.name',\r\n hideOn: ['sm', 'md', 'lg']\r\n },\r\n {\r\n name: type === ContractModel.USE ? t('common.type_funding') : t('common.type_contract'),\r\n renderCell: row =>
\r\n {!Utils.isStringNullOrEmpty((row as UseContractDto).useContractTypeName) ? t(('common.use_contract_types.' + (row as UseContractDto).useContractTypeName) as any) :\r\n (row as MaintenanceContractDto).maintenanceContractTypes?.length > 0 ? (row as MaintenanceContractDto).maintenanceContractTypes.map(x =>
{t(('common.maintenance_contract_type.' + x.maintenanceContractTypeName) as any)}
) :\r\n (row as InsuranceContractDto).insuranceContractTypes?.length > 0 ? (row as InsuranceContractDto).insuranceContractTypes.map(x =>
{t(('common.insurance_contract_types.' + x.insuranceContractTypeName) as any)}
) :\r\n '-'}\r\n
,\r\n width: '20%',\r\n onSearch: type === ContractModel.USE ? onTableFilter : undefined,\r\n searchField: type === ContractModel.USE ? 'useContractType.name' : undefined,\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('contracts.state_number'),\r\n renderCell: row => { \r\n const colorText = !row.endDate || new Date() >= new Date(row.startDate) && new Date() <= new Date(row.endDate) ? ContractStatusColorEnum.IN_PROGRESS :\r\n new Date() > new Date(row.startDate) ? ContractStatusColorEnum.EXPIRED :\r\n new Date() < new Date(row.endDate) ? ContractStatusColorEnum.PLANNED : '#000'\r\n\r\n return(\r\n
\r\n
{row.number || '-'}
\r\n
\r\n {!Utils.isStringNullOrEmpty((row as UseContractDto).useContractTypeName) && (row as UseContractDto).useContractTypeName === 'Achat' ? '-' :\r\n !row.endDate || new Date() >= new Date(row.startDate) && new Date() <= new Date(row.endDate) ? t('contracts.states.in_progress') :\r\n new Date() > new Date(row.startDate) ? t('contracts.states.expired') :\r\n new Date() < new Date(row.endDate) ? t('contracts.states.planned') : '-'}\r\n
\r\n
\r\n )},\r\n width: '15%'\r\n },\r\n {\r\n name: t('common.cost', { vat : (userProfile?.useValueWithVat? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row => row.cost ?
{row.periodicity ? ' (' + t('common.periodicities.' + (row as UseContractDto).periodicity as any) + ')' : ''}
:
-
,\r\n width: '15%',\r\n onSearch: onTableFilter,\r\n searchField: 'cost',\r\n cellAlignment: 'right'\r\n },\r\n {\r\n name: t('common.cost_cumulative', { vat : (userProfile?.useValueWithVat? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row => row.costCumule ? :
-
,\r\n width: '15%',\r\n hideOn: ['sm', 'md', 'lg'],\r\n cellAlignment: 'right'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n { hasContractsWritePolicy && editable && }\r\n \r\n \r\n\r\n onClickItem(row, true)}\r\n allowHover={true}\r\n initialSearch={{ colField: 'start_date', isOrderAsc: true }}\r\n />\r\n \r\n
\r\n {type === ContractModel.USE && itemToRemove && getTooltipToOtherContracts(itemToRemove)}\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ListContractsScreen;\r\n","import Http from 'common/services/Http';\r\nimport { AlertNoticeDto } from './models/AlertNoticeDto';\r\n\r\nclass AlertNoticesService {\r\n public getAll() {\r\n return Http.get('alertnotices/all');\r\n }\r\n}\r\n\r\nexport default new AlertNoticesService();\r\n","export enum AlertNoticeTypeEnum {\r\n KILOMETERS = 'KILOMETERS',\r\n TIME_PERIODS = 'TIME_PERIODS'\r\n}","export enum Periodicity {\r\n ANNUAL = 'ANNUAL',\r\n SIX_MONTHLY = 'SIX_MONTHLY',\r\n QUARTERLY = 'QUARTERLY',\r\n MONTHLY = 'MONTHLY',\r\n WEEKLY = 'WEEKLY',\r\n DAILY = 'DAILY',\r\n UNIQUE = 'UNIQUE'\r\n}\r\n\r\nexport enum PeriodicityInMonths {\r\n ANNUAL = 12,\r\n SIX_MONTHLY = 6,\r\n QUARTERLY = 3,\r\n MONTHLY = 1\r\n}","export enum TaxVat {\r\n WITHOUT_VAT = 'WITHOUT_VAT',\r\n WITH_VAT = 'WITH_VAT'\r\n}\r\n","export enum GenericType {\r\n FUEL = 'FUEL',\r\n MAINTENANCE = 'MAINTENANCE',\r\n CLEANING = 'CLEANING',\r\n INSURANCE = 'INSURANCE',\r\n RENTAL = 'RENTAL',\r\n FINES = 'FINES',\r\n ENERGY = 'ENERGY',\r\n ACCESSORIES = 'ACCESSORIES',\r\n LOGO = 'LOGO',\r\n TRANSPORT = 'TRANSPORT',\r\n MISCELLANEOUS = 'MISCELLANEOUS'\r\n}","import React, { useState } from 'react';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport DatePicker, { registerLocale, ReactDatePickerProps as DateProps } from 'react-datepicker';\r\nimport { fr, pt, enGB } from 'date-fns/locale';\r\nimport { Portal } from 'react-overlays';\r\nimport styles from './DateTimePickerRange.module.scss'\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport Input from '../input/Input';\r\nimport dayjs from 'dayjs';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_LANGUAGE, STORAGE } from '../../../Config';\r\nimport Storage from '../../services/Storage';\r\n\r\nregisterLocale('fr', fr)\r\nregisterLocale('pt', pt)\r\nregisterLocale('enGB', enGB)\r\n\r\ntype Props = {\r\n onChangeRange?: (start: Date | null, end: Date | null) => void;\r\n start?: Date,\r\n end?: Date,\r\n onClickOutsideRange?: () => void\r\n} & DateProps;\r\n\r\nconst CalendarContainer = ({ children }: any) => {\r\n const el = document.getElementById('calendar-portal');\r\n return {children};\r\n};\r\n\r\nconst DateTimePickerRange: React.FC = ({\r\n onChangeRange, start, end, onClickOutsideRange, placeholderText, ...props\r\n}: Props) => {\r\n\r\n \r\n const [dateRange, setDateRange] = useState<[Date | null | undefined, Date | null | undefined]>([start, end]);\r\n const [startDate, endDate] = dateRange;\r\n\r\n const format = (props.dateFormat as string ?? DATE_FORMAT_DEFAUT).toUpperCase();\r\n\r\n const onChange = (dates: [Date, Date]) => {\r\n setDateRange(dates);\r\n (!dates[0] && !dates[1] || !!dates[0] && !!dates[1]) && onChangeRange && onChangeRange(dates[0], dates[1]);\r\n };\r\n\r\n const returnValue = () => {\r\n return !startDate && !endDate ? '' :\r\n (!!startDate ? dayjs(startDate).format(format) : '')\r\n + ' - ' +\r\n (!!endDate ? dayjs(endDate).format(format) : '')\r\n }\r\n\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n return (\r\n !!input && !!startDate && !!endDate && input.setOpen(false)}\r\n customInput={\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n onClickOutside={() => {\r\n !!onClickOutsideRange && onClickOutsideRange();\r\n !!startDate && onChangeRange && onChangeRange(startDate, endDate ?? null);\r\n }}\r\n isClearable\r\n onChangeRaw={(event: any) => {\r\n event.preventDefault();\r\n if (event.nativeEvent.inputType == 'deleteContentBackward') {\r\n onChangeRange && onChangeRange(null, null);\r\n }\r\n }}\r\n onFocus={(e: any) => {\r\n e.target.select();\r\n }}\r\n />\r\n );\r\n\r\n};\r\n\r\nexport default DateTimePickerRange;","import React, { useRef } from 'react';\r\nimport InputGroup, { Props as InputGroupProps } from './InputGroup';\r\nimport { Controller, RegisterOptions } from 'react-hook-form';\r\n\r\ntype Props = InputGroupProps & {\r\n name: string;\r\n form: any;\r\n hideMessageLength?: boolean;\r\n placeholder?: string;\r\n clickInText?: boolean;\r\n onClickInText?: () => void;\r\n rules?: Exclude;\r\n removeInputBorderRadius?: boolean;\r\n removeIconOrTextBorderRadius?: boolean;\r\n};\r\n\r\nconst InputGroupController = ({ name, form, hideMessageLength, placeholder, onValueChange, clickInText, onClickInText, rules, removeInputBorderRadius, \r\n removeIconOrTextBorderRadius, ...props }: Props, ref: any) => {\r\n ref = useRef(null);\r\n return (\r\n {\r\n return (\r\n {\r\n const newValue = props.type === 'number' || props.type === 'integer' ? Number(value || 0) : value;\r\n controllerOnChange(onValueChange ? onValueChange(newValue) : newValue);\r\n }}\r\n removeInputBorderRadius={removeInputBorderRadius}\r\n removeIconOrTextBorderRadius={removeIconOrTextBorderRadius}\r\n />\r\n );\r\n }}\r\n defaultValue={form.getValues(name) ?? ''}\r\n onFocus={() => (ref.current as any).focus()}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default React.forwardRef(InputGroupController);\r\n","export default __webpack_public_path__ + \"static/media/i_info_primaryDark.a91d490b.svg\";","import React, { useRef } from 'react';\r\nimport DateTimePicker, { Props as DateTimePickerProps } from './DateTimePicker';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\nimport { DATEPICKER_FORMAT_DEFAULT } from 'Config';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n onChange?: (date: Date | [Date, Date] | null) => void;\r\n rules?: Exclude;\r\n} & Omit;\r\n\r\nconst DateTimePickerControllerNew = ({ form, name, rules, onChange, ...props }: Props) => {\r\n const ref = useRef(null);\r\n return (\r\n {\r\n return (\r\n }\r\n clickInText={true}\r\n onClickInText={() => (ref.current as any)?.setOpen(true)}\r\n />}\r\n onChange={date => {\r\n onChangeCtrl(date);\r\n if (onChange) {\r\n onChange(date)\r\n }\r\n }}\r\n selected={value}\r\n />\r\n );\r\n }}\r\n onFocus={() => (ref.current as any).input.focus()}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name)}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default DateTimePickerControllerNew;\r\n","import React from 'react';\r\nimport styles from './InputInfoWarning.module.scss';\r\n\r\ntype Props = {\r\n message?: string;\r\n isWarning?: boolean;\r\n};\r\n\r\nconst InputInfoWarning: React.FC = ({ message, isWarning }: Props) => {\r\n return
\r\n {/* */}\r\n
{message}
\r\n
;\r\n}\r\n\r\nexport default InputInfoWarning;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport { ContractInvoiceDto } from 'api/contracts/invoices/models/InvoiceDto';\r\nimport styles from './Invoices.module.scss';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport Button from 'common/components/button/Button';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport CloseIcon from 'assets/svg/x-circle.svg';\r\nimport Utils from 'common/services/Utils';\r\nimport DateTimePicker from 'common/components/dateTimePicker/DateTimePicker';\r\nimport { DATE_FORMAT_DEFAUT, DATEPICKER_FORMAT_DEFAULT } from 'Config';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { AiOutlineFilePdf } from 'react-icons/ai';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport moment from 'moment';\r\nimport { FaTrashAlt } from 'react-icons/fa';\r\nimport CustomFile from 'common/models/CustomFile';\r\ninterface Props {\r\n mode:string;\r\n setMode:(mode:'add' | 'list') => void;\r\n invoices: ContractInvoiceDto[];\r\n onAddInvoice: (invoice: ContractInvoiceDto) => void;\r\n onRemoveInvoice: (invoice: ContractInvoiceDto) => void;\r\n isDetails: boolean;\r\n}\r\n\r\nfunction ContractInvoices({ invoices, onAddInvoice, onRemoveInvoice, isDetails,mode,setMode }: Props): JSX.Element | null {\r\n const { t } = useTranslation();\r\n\r\n const [invoice, setInvoice] = useState({ id: Utils.newGuid(), date: new Date(),isNew:true })\r\n const [hasSaved, setHasSaved] = useState(false);\r\n\r\n const cancelInvoice = () => {\r\n setMode('list');\r\n setInvoice({ id: Utils.newGuid(), date: new Date(),isNew:true })\r\n setHasSaved(false);\r\n }\r\n\r\n const onSaveInvoice = () => {\r\n\r\n if (!invoice.file || !invoice.date) {\r\n setHasSaved(true);\r\n return;\r\n }\r\n\r\n onAddInvoice(invoice);\r\n setInvoice({ id: Utils.newGuid(), date: new Date(),isNew:true })\r\n setMode('list')\r\n setHasSaved(false);\r\n }\r\n\r\n const openFile = (e: React.MouseEvent,item:CustomFile) => {\r\n if (item?.url) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n window.open(item.url, '_blank');\r\n }\r\n }\r\n\r\n const setFile = (file:CustomFile) => {\r\n file.containerName = invoice.id;\r\n setInvoice(x => {\r\n return {\r\n ...x,\r\n file: file\r\n }\r\n })\r\n }\r\n\r\n const add = () => (\r\n <>\r\n \r\n setFile(file[0])}\r\n onRemoveFile={file => {\r\n setInvoice(x => {\r\n return {\r\n ...x,\r\n file: undefined\r\n }\r\n })\r\n }}\r\n label={}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n {hasSaved && !invoice.file && }\r\n \r\n \r\n \r\n
\r\n {\r\n setInvoice(x => {\r\n return {\r\n ...x,\r\n date: date\r\n }\r\n })\r\n }}\r\n\r\n dateFormat={DATEPICKER_FORMAT_DEFAULT}\r\n selected={moment(invoice.date).toDate()}\r\n customInput={} />}\r\n />\r\n
\r\n {hasSaved && !invoice.date && }\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n\r\n const list = () => (\r\n <>\r\n {!invoices?.length &&
{t('common.without_elements')}
}\r\n {invoices.length > 0 && invoices.map((item, index) => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
openFile(e,item.file!)} style={{ cursor: item.file?.url ? 'pointer': 'default' }}>\r\n {item.file?.name}\r\n
\r\n
\r\n {!isDetails &&
\r\n onRemoveInvoice(item)} style={{ cursor: 'pointer' }} />\r\n
}\r\n
\r\n
\r\n ))}\r\n \r\n )\r\n\r\n useEffect(() => {\r\n setMode('list');\r\n }, [isDetails]);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {!isDetails && mode === 'list' && setMode('add')} />}\r\n {!isDetails && mode === 'add' && }\r\n
\r\n
\r\n {mode === 'list' && list()}\r\n {mode === 'add' && add()}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ContractInvoices;","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport AlertNoticesService from 'api/alertNotices/AlertNoticesService';\r\nimport { AlertNoticeTypeEnum } from 'api/alertNotices/enums/AlertNoticeTypeEnum';\r\nimport { AlertNoticeDto, SelectedAlertNoticeDto } from 'api/alertNotices/models/AlertNoticeDto';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport { Periodicity } from 'api/contracts/enums/Periodicity';\r\nimport { TaxVat } from 'api/contracts/enums/TaxVat';\r\nimport { UseContractDto } from 'api/contracts/useContract/models/UseContractDto';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport DateTimePickerController from 'common/components/dateTimePicker/DateTimePickerController';\r\nimport DateTimePickerRange from 'common/components/dateTimePickerRange/DateTimePickerRange';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport Label from 'common/components/label/Label';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_INPUT_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, DEFAULT_LANGUAGE, LOGGER_LOG_TYPE, removeAccents, SEGMENT_FEATURES, STORAGE } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useFieldArray, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './UseContractScreen.module.scss';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport InfoIcon from 'assets/svg/i_info_primaryDark.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\nimport Storage from 'common/services/Storage';\r\nimport InputInfoWarning from 'common/components/inputInfoWarning/InputInfoWarning';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport ContractInvoices from '../invoices/Invoices';\r\nimport Separator from 'common/components/separator/Separator';\r\nimport { ContractInvoiceDto } from 'api/contracts/invoices/models/InvoiceDto';\r\n\r\nexport type Props = {\r\n itemId?: string;\r\n startDateEdit?: Date;\r\n endDateEdit?: Date;\r\n isDetails: boolean;\r\n editable: boolean;\r\n onBackList: () => void;\r\n onItemDetails: (state: boolean) => void;\r\n onSubmitted: () => void;\r\n vehicle?: VehicleDto\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nenum FileUseContractType {\r\n GRAY_CARD = 'GRAY_CARD',\r\n CONTRACT_OR_PROOF_PURCHASE = 'CONTRACT_OR_PROOF_PURCHASE'\r\n}\r\n\r\nconst UseContractScreen = ({ itemId, startDateEdit, endDateEdit, isDetails, vehicle, onBackList, onItemDetails, onSubmitted, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [useContract, setUseContract] = useState(null);\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n const [useContractTypeOptions, setUseContractTypeOptions] = useState([]);\r\n const [useContractTypePurchase, setUseContractTypePurchase] = useState();\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n const [selectedStampDutyIncluded, setSelectedStampDutyIncluded] = useState(false);\r\n const [selectedMaintenanceContractIncluded, setSelectedMaintenanceContractIncluded] = useState(false);\r\n const [selectedInsuranceIncluded, setSelectedInsuranceIncluded] = useState(false);\r\n\r\n const [contractTypesResult, setContractTypesResult] = useState([]);\r\n\r\n const [savedFilesGrayCard, setSavedFilesGrayCard] = useState([]);\r\n const [savedFilesContractOrProofPurchase, setSavedFilesContractOrProofPurchase] = useState([]);\r\n const [alertNoticeOptions, setAlertNoticeOptions] = useState([]);\r\n const [showAlertNotice, setShowAlertNotice] = useState(false);\r\n const [showRemoveAlertNotice, setShowRemoveAlertNotice] = useState(false);\r\n const [alertNoticeToRemoveIndex, setAlertNoticeToRemoveIndex] = useState(null);\r\n const [alertNoticeIdsToRemove, setAlertNoticeIdsToRemove] = useState([]);\r\n const [currentKmsGps, setCurrentKmsGps] = useState(null);\r\n\r\n const [invoiceMode, setInvoiceMode] = useState<'add' | 'list'>('list')\r\n const [invoicesToRemove,setInvoicesToRemove] = useState([])\r\n\r\n const periodicityOptions: SelectValueLabel[] = Object.keys(Periodicity).map(key => ({\r\n value: key,\r\n label: t('common.periodicities.' + key as any)\r\n }));\r\n\r\n const taxVatOptions: SelectValueLabel[] = Object.keys(TaxVat).map(key => ({\r\n value: key,\r\n label: t('common.tax_vat.' + key as any),\r\n fullLabel: t('common.tax_vat.FULL_' + key as any),\r\n }));\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, setValue, getValues, watch, errors, reset } = form;\r\n\r\n const alertNotices = useFieldArray({ control: form.control, name: 'alertNotices', keyName: 'formId' as any });\r\n const [inputKmsBelowCurrentVehicleKms, setInputKmsBelowCurrentVehicleKms] = useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasContractsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CONTRACTS_WRITE']);\r\n const hasReadGPSPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n const getData = async () => {\r\n setValue('attachmentsToRemove', []);\r\n setValue('taxVat', taxVatOptions[0].value);\r\n if (Boolean(vehicle) && !itemId) {\r\n setValue('kmVehicle', vehicle?.currentKilometers);\r\n }\r\n try {\r\n Loading.show();\r\n\r\n const useContractTypesOrig = await UseContractsService.getUseContractTypes();\r\n const useContractTypes = useContractTypesOrig.map(x => ({ ...x, label: t(`common.use_contract_types.${x.label}` as any), key: x.label }));\r\n const useContractTypesOrdered = Utils.sortAlphabetically(useContractTypes);\r\n setUseContractTypeOptions(useContractTypesOrdered);\r\n\r\n setUseContractTypePurchase(useContractTypesOrdered.find(x => x.key == 'PURCHASE'));\r\n\r\n const suppliers = await SuppliersService.catalog({ typeName: GenericType.RENTAL } as CatalogSupplierSearchCriteria);\r\n setSupplierOptions(Utils.sortAlphabetically((suppliers || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' }))));\r\n\r\n setContractTypesResult(await UseContractsService.getUseContractTypes());\r\n\r\n const alertNoticesDB: AlertNoticeDto[] = await AlertNoticesService.getAll();~\r\n buildAndSetAlertNoticeOptions(showField(SEGMENT_FEATURES.KM) ? alertNoticesDB : alertNoticesDB.filter(x => x.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS));\r\n\r\n if (itemId) {\r\n const result = await UseContractsService.getById(itemId);\r\n\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.USE_CONTRACTS, `Couldn't get the use contract with id: ${itemId}`);\r\n onBackList();\r\n }\r\n\r\n if (result.returnDate) {\r\n result.returnDate = new Date(result.returnDate);\r\n }\r\n\r\n setValue('taxVat', taxVatOptions.find(x => x.value == result.taxVat)?.value);\r\n reset(result);\r\n setSelectedStampDutyIncluded(result.stampDutyIncluded);\r\n setSelectedMaintenanceContractIncluded(result.maintenanceContractIncluded);\r\n setSelectedInsuranceIncluded(result.insuranceIncluded);\r\n\r\n setValuesFilesGrayCard(result.attachments.filter(x => x.fileType == FileUseContractType.GRAY_CARD));\r\n setValuesFilesContractOrProofPurchase(result.attachments.filter(x => x.fileType == FileUseContractType.CONTRACT_OR_PROOF_PURCHASE));\r\n\r\n result.startDate = moment(result.startDate).toDate();\r\n result.endDate = result.endDate != undefined ? moment(result.endDate).toDate() : undefined;\r\n setUseContract(result);\r\n\r\n compareKms();\r\n }\r\n setShowAlertNotice(true);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.USE_CONTRACTS, `Couldn't get information to create use contract aa`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getGpsKms = async () => {\r\n if (vehicle && vehicle.id && vehicle.companyTrackingProvider && vehicle?.companyTrackingProvider !== TrackingProvider.NONE && vehicle.trackingDeviceId) {\r\n try {\r\n const position = await TrackingService.getPosition(vehicle.id);\r\n setCurrentKmsGps(position.km ?? null);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.USE_CONTRACTS, `Couldn't get vehicle gps kms`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n const buildAndSetAlertNoticeOptions = (alertNoticesArr: AlertNoticeDto[]) => {\r\n let mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesArr) {\r\n mappedAlertNotices = alertNoticesArr.map((x, i) => {\r\n let label: string = x.value + ' ';\r\n if (x.alertNoticeType == AlertNoticeTypeEnum.KILOMETERS) {\r\n label = label + (x.value > 1 ? t(('maintenances.alert_notice_type.PLURALIZED_' + AlertNoticeTypeEnum.KILOMETERS) as any) : t(('maintenances.alert_notice_type.' + AlertNoticeTypeEnum.KILOMETERS) as any)) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n else if (x.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS) {\r\n label = label + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n\r\n return { label, value: x.id, fullLabel: x.alertNoticeType }\r\n });\r\n }\r\n setAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n\r\n const onSubmit = async (form: UseContractDto) => {\r\n try {\r\n\r\n form.stampDutyIncluded = selectedStampDutyIncluded;\r\n form.maintenanceContractIncluded = selectedMaintenanceContractIncluded;\r\n form.insuranceIncluded = selectedInsuranceIncluded;\r\n form.vehicleId = vehicleId;\r\n form.invoicesToDelete = invoicesToRemove;\r\n form.invoices = (form.invoices ?? []).filter(x => x.isNew)\r\n\r\n if(invoiceMode === 'add'){\r\n addToast(t('contracts.invoices.save_invoice_toast'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n if (\r\n !form.startDate ||\r\n (selectedUseContractType != useContractTypePurchase && (\r\n !form.periodicity ||\r\n !form.number ||\r\n !form.endDate ||\r\n !form.supplierId\r\n ))\r\n ) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n setShowAlertNotice(false);\r\n form.attachments = prepareFilesToSubmit();\r\n\r\n if (selectedUseContractType == useContractTypePurchase) {\r\n form.periodicity = undefined;\r\n form.endDate = undefined;\r\n form.returnDate = undefined;\r\n form.returnPlace = undefined;\r\n form.insuranceIncluded = false;\r\n form.maintenanceContractIncluded = false;\r\n form.stampDutyIncluded = false;\r\n form.alertNotices = [];\r\n form.alertNoticesIdsToRemove = [];\r\n }\r\n\r\n form.useContractTypeName = contractTypesResult.find(x => x.value == form.useContractTypeId)?.label ?? '';\r\n\r\n if (form.id) {\r\n await UseContractsService.update(form, form.attachments ?? []);\r\n } else {\r\n itemId = await UseContractsService.create(form, form.attachments ?? []);\r\n }\r\n\r\n setInvoicesToRemove([]);\r\n getData();\r\n Loading.hide();\r\n onSubmitted();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.USE_CONTRACTS, `Couldn't update the use contract with id: ${form.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n }\r\n }\r\n\r\n const addAlertNotice = () => {\r\n alertNotices.append({\r\n id: null\r\n });\r\n }\r\n\r\n const renderAlertNotice = (index: number, an: any) => {\r\n return (\r\n input ? removeAccents(itemFilter.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />);\r\n }\r\n\r\n\r\n const removeAlertNotice = () => {\r\n if (alertNoticeToRemoveIndex === null) return;\r\n\r\n if (alertNotices.fields[alertNoticeToRemoveIndex]?.id) {\r\n setAlertNoticeIdsToRemove([...alertNoticeIdsToRemove, alertNotices.fields[alertNoticeToRemoveIndex].id!]);\r\n }\r\n\r\n alertNotices.remove(alertNoticeToRemoveIndex);\r\n\r\n setShowRemoveAlertNotice(false);\r\n }\r\n\r\n const setRemoveAlertNotice = (index: number) => {\r\n setShowRemoveAlertNotice(true);\r\n setAlertNoticeToRemoveIndex(index);\r\n }\r\n\r\n\r\n\r\n const onSelectStampDutyIncluded = (mode: boolean) => {\r\n setSelectedStampDutyIncluded(mode);\r\n setValue('stampDutyIncluded', selectedStampDutyIncluded);\r\n form.clearErrors();\r\n }\r\n\r\n const onSelectMaintenanceContractIncluded = (mode: boolean) => {\r\n setSelectedMaintenanceContractIncluded(mode);\r\n setValue('maintenanceContractIncluded', selectedMaintenanceContractIncluded);\r\n }\r\n\r\n const onSelectInsuranceIncluded = (mode: boolean) => {\r\n setSelectedInsuranceIncluded(mode);\r\n setValue('insuranceIncluded', selectedInsuranceIncluded);\r\n }\r\n\r\n const showRemoveItemDialog = (item: UseContractDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await UseContractsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n onBackList();\r\n onSubmitted();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFilesGrayCard(savedFilesGrayCard);\r\n setValuesFilesContractOrProofPurchase(savedFilesContractOrProofPurchase);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n const filesGrayCard = getValues('attachmentsGrayCard')?.filter(x => !x.id) ?? [];\r\n const filesContractOrProofOfPurchase = getValues('attachmentsContractOrProofPurchase')?.filter(x => !x.id) ?? [];\r\n setValuesFilesGrayCard(filesGrayCard);\r\n setValuesFilesContractOrProofPurchase(filesContractOrProofOfPurchase);\r\n\r\n const invoiceFiles:CustomFile[] = [];\r\n const invoicesToSave = (getValues('invoices') ?? []).filter(x => x.isNew);\r\n invoicesToSave.map(x => invoiceFiles.push(x.file!))\r\n\r\n const fullAttachments = [...filesGrayCard, ...filesContractOrProofOfPurchase,...invoiceFiles];\r\n setValue('attachments', fullAttachments);\r\n return fullAttachments;\r\n }\r\n\r\n const setValuesFilesGrayCard = (files: CustomFile[]) => {\r\n if (files && files.length > 0) {\r\n files.map(x => x.containerName = FileUseContractType.GRAY_CARD);\r\n setValue('attachmentsGrayCard', files);\r\n setSavedFilesGrayCard(files?.filter(x => x.id));\r\n }\r\n }\r\n\r\n const setValuesFilesContractOrProofPurchase = (files: CustomFile[]) => {\r\n if (files && files.length > 0) {\r\n files.map(x => x.containerName = FileUseContractType.CONTRACT_OR_PROOF_PURCHASE);\r\n setValue('attachmentsContractOrProofPurchase', files);\r\n setSavedFilesContractOrProofPurchase(files?.filter(x => x.id));\r\n }\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n const getMessageToDeletion = () => {\r\n const labelMaintenances = useContract && Boolean(useContract?.numbersMaintenanceContracts?.length) ? t('contracts.use_contract.maintenance_contracts_associated') + useContract.numbersMaintenanceContracts.join() : undefined;\r\n const labelInsurance = useContract && Boolean(useContract?.numbersInsuranceContracts?.length) ? t('contracts.use_contract.insurance_contracts_associated') + useContract.numbersInsuranceContracts.join() : '';\r\n\r\n return (
\r\n {validateRemoveConfirmation() &&
{t('contracts.use_contract.cant_delete_contracts_associated')}
}\r\n {labelMaintenances &&
{labelMaintenances}
}\r\n {labelInsurance &&
{labelInsurance}
}\r\n
);\r\n }\r\n\r\n const validateRemoveConfirmation = () => {\r\n return useContract && (Boolean(useContract?.numbersMaintenanceContracts?.length) || Boolean(useContract?.numbersInsuranceContracts?.length));\r\n }\r\n\r\n const renderButtons = () => {\r\n return
\r\n {\r\n if (useContract) reset(useContract);\r\n onBackList();\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {isDetails && props.editable && hasContractsWritePolicy &&\r\n showRemoveItemDialog({ id: useContract?.id, useContractTypeName: useContract?.useContractTypeName } as UseContractDto)} />\r\n }\r\n {isDetails && props.editable && hasContractsWritePolicy && onItemDetails(false)}\r\n />}\r\n {!isDetails && hasContractsWritePolicy && }\r\n\r\n removeItem()}\r\n isInformation={validateRemoveConfirmation()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)}>\r\n
\r\n {useContract && getMessageToDeletion()}\r\n
\r\n \r\n
\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n form.clearErrors();\r\n }, [watch('useContractTypeId')]);\r\n\r\n useEffect(() => {\r\n if (vehicle && !isDetails) {\r\n // current kms from tracking\r\n getGpsKms();\r\n }\r\n }, [vehicle, isDetails]);\r\n\r\n const selectedUseContractTypeId = form.watch('useContractTypeId');\r\n const selectedUseContractType = useContractTypeOptions.find(x => x.value == selectedUseContractTypeId);\r\n const selectedPeriodicityValue = form.watch('periodicity');\r\n const selectedPeriodicity = periodicityOptions.find(x => x.value == selectedPeriodicityValue)?.label;\r\n\r\n const getTooltipToOtherContracts = (maintenance: boolean, insurance: boolean) => {\r\n let label = maintenance ? t('contracts.use_contract.maintenance_contracts_associated')\r\n : insurance ? t('contracts.use_contract.insurance_contracts_associated')\r\n : undefined;\r\n if (maintenance && Boolean(useContract) && useContract?.numbersMaintenanceContracts) {\r\n label = Boolean(useContract) && useContract?.numbersMaintenanceContracts && useContract?.numbersMaintenanceContracts.length > 0\r\n ? label + useContract.numbersMaintenanceContracts.join()\r\n : undefined;\r\n }\r\n if (insurance && Boolean(useContract) && useContract?.numbersInsuranceContracts) {\r\n label = Boolean(useContract) && useContract?.numbersInsuranceContracts && useContract?.numbersInsuranceContracts.length > 0\r\n ? label + useContract.numbersInsuranceContracts.join()\r\n : undefined;\r\n }\r\n return label;\r\n }\r\n\r\n const compareKms = () => {\r\n if (vehicle && (watch('kmVehicle') ?? 0) < (vehicle?.currentKilometers ?? 0)) {\r\n setInputKmsBelowCurrentVehicleKms(true);\r\n return;\r\n }\r\n setInputKmsBelowCurrentVehicleKms(false);\r\n }\r\n\r\n const onAddContractInvoice = (invoice: ContractInvoiceDto) => {\r\n const currentInvoices = getValues('invoices') ?? [];\r\n setValue('invoices',[invoice,...currentInvoices])\r\n };\r\n\r\n const onRemoveContractInvoice = (invoice: ContractInvoiceDto) => {\r\n if(!invoice.isNew){\r\n setInvoicesToRemove(x => [...x,invoice.id!])\r\n }\r\n\r\n const currentInvoices = getValues('invoices') ?? [];\r\n const helper = currentInvoices.filter(x => invoice.id !== x.id)\r\n setValue('invoices',[...helper])\r\n };\r\n\r\n const showField = (feature: string) => {\r\n return (vehicle?.segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n onBackList()} /> {t('contracts.use_contract.title')}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Boolean(watch('useContractTypeId') != useContractTypePurchase?.value) ?\r\n \r\n :\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n x.value == getValues('supplierId')) && Boolean(itemId) ?\r\n [...supplierOptions, { label: getValues('supplierName'), value: getValues('supplierId') }] : supplierOptions}\r\n rules={{ required: selectedUseContractType != useContractTypePurchase }}\r\n value={isDetails && getValues('supplierId') ? { label: getValues('supplierName'), value: getValues('supplierId') } : null} />\r\n \r\n \r\n \r\n\r\n {selectedUseContractType != useContractTypePurchase && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {selectedUseContractType != useContractTypePurchase\r\n ? \r\n \r\n \r\n
\r\n {\r\n // do nothing.\r\n }}\r\n onChangeRange={(start: Date | null, end: Date | null) => {\r\n let sd = null;\r\n if (start) {\r\n const startDate = new Date(start);\r\n sd = Utils.generateDate(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());\r\n }\r\n setValue('startDate', sd);\r\n\r\n let dateLastDayOfMonth = end;\r\n if (end) {\r\n dateLastDayOfMonth = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);\r\n }\r\n setValue('endDate', dateLastDayOfMonth);\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n : \r\n \r\n \r\n
\r\n {\r\n setValue('startDate', date);\r\n setUseContract(useContract ? { ...useContract, startDate: date } : null);\r\n }}\r\n selected={useContract && useContract.startDate !== undefined ? moment(useContract.startDate).toDate() : null}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n customInput={} />}\r\n name=\"startDate\"\r\n autoComplete='off'\r\n disabled={isDetails}\r\n rules={{ required: true }} />\r\n
\r\n \r\n
\r\n \r\n }\r\n\r\n {selectedUseContractType != useContractTypePurchase && showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {showField(SEGMENT_FEATURES.KM) &&
{t('common.or')}
}\r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n \r\n \r\n
}\r\n
\r\n
\r\n \r\n {showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n compareKms()} />\r\n \r\n {vehicle && !isDetails && }\r\n {hasReadGPSPolicy && vehicle && !isDetails && currentKmsGps != null && }\r\n \r\n }\r\n\r\n {/* novos campos */}\r\n {selectedUseContractType != useContractTypePurchase && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {selectedUseContractType != useContractTypePurchase && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {selectedUseContractType != useContractTypePurchase &&\r\n }\r\n {/* fim: novos campos */}\r\n\r\n \r\n \r\n \r\n
\r\n {selectedUseContractType != useContractTypePurchase &&\r\n
\r\n
\r\n
!isDetails ? onSelectStampDutyIncluded(true) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.yes')}\r\n
\r\n
\r\n
\r\n
!isDetails ? onSelectStampDutyIncluded(false) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.no')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n {(!selectedStampDutyIncluded || selectedUseContractType == useContractTypePurchase) &&
\r\n \r\n \r\n
}\r\n
\r\n
\r\n \r\n {selectedUseContractType != useContractTypePurchase && \r\n \r\n \r\n
\r\n
0) ? styles.spinner : styles.spinnerDetails}>\r\n
!isDetails && !Boolean(useContract?.numbersMaintenanceContracts && useContract?.numbersMaintenanceContracts.length > 0) ? onSelectMaintenanceContractIncluded(true) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.yes')}\r\n
\r\n
\r\n
\r\n
!isDetails && !Boolean(useContract?.numbersMaintenanceContracts && useContract?.numbersMaintenanceContracts.length > 0) ? onSelectMaintenanceContractIncluded(false) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.no')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n }\r\n {selectedUseContractType != useContractTypePurchase && \r\n \r\n \r\n
\r\n
0) ? styles.spinner : styles.spinnerDetails}>\r\n
!isDetails && !Boolean(useContract?.numbersInsuranceContracts && useContract?.numbersInsuranceContracts.length > 0) ? onSelectInsuranceIncluded(true) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.yes')}\r\n
\r\n
\r\n
\r\n
!isDetails && !Boolean(useContract?.numbersInsuranceContracts && useContract?.numbersInsuranceContracts.length > 0) ? onSelectInsuranceIncluded(false) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('common.no')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n }\r\n\r\n\r\n {selectedUseContractType != useContractTypePurchase && \r\n
\r\n \r\n {!isDetails && }\r\n
\r\n\r\n {alertNotices.fields.length === 0 &&
\r\n {t('maintenances.without_alert_notices')}\r\n
}\r\n\r\n {!!alertNoticeOptions && !!showAlertNotice && !!alertNotices && alertNotices.fields.map((x, i) => {\r\n return (\r\n \r\n {renderAlertNotice(i, x)}\r\n \r\n {!isDetails && \r\n setRemoveAlertNotice(i)} />\r\n }\r\n )\r\n })}\r\n }\r\n
\r\n {renderButtons()}\r\n
\r\n\r\n \r\n \r\n \r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n \r\n {t('contracts.insurance_contract.gray_card')}}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n
}\r\n
\r\n \r\n {t('contracts.insurance_contract.contract_or_proof_purchase')}}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n
\r\n\r\n \r\n\r\n setInvoiceMode(mode)}\r\n invoices={form.watch('invoices') ?? []}\r\n onAddInvoice={onAddContractInvoice}\r\n onRemoveInvoice={onRemoveContractInvoice}\r\n isDetails={isDetails}\r\n />\r\n \r\n
\r\n
\r\n\r\n removeAlertNotice()}\r\n onNo={() => { setShowRemoveAlertNotice(false); setAlertNoticeToRemoveIndex(null) }}\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\nexport default UseContractScreen;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport { Periodicity } from 'api/contracts/enums/Periodicity';\r\nimport MaintenanceContractsService from 'api/contracts/maintenanceContract/MaintenanceContractsService';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport DateTimePickerRange from 'common/components/dateTimePickerRange/DateTimePickerRange';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport Label from 'common/components/label/Label';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Select from 'common/components/select/Select';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, DEFAULT_LANGUAGE, LOGGER_LOG_TYPE, removeAccents, STORAGE } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useFieldArray, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport { MaintenanceContractDto, MaintenanceContractTypeItemDto } from '../../../../../../api/contracts/maintenanceContract/models/MaintenanceContractDto';\r\nimport styles from './MaintenanceContractsScreen.module.scss';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { AlertNoticeDto, SelectedAlertNoticeDto } from 'api/alertNotices/models/AlertNoticeDto';\r\nimport AlertNoticesService from 'api/alertNotices/AlertNoticesService';\r\nimport { AlertNoticeTypeEnum } from 'api/alertNotices/enums/AlertNoticeTypeEnum';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Storage from 'common/services/Storage';\r\nimport Separator from 'common/components/separator/Separator';\r\nimport ContractInvoices from '../invoices/Invoices';\r\nimport { ContractInvoiceDto } from 'api/contracts/invoices/models/InvoiceDto';\r\n\r\nexport type Props = {\r\n itemId?: string;\r\n startDateEdit?: Date;\r\n endDateEdit?: Date;\r\n isDetails: boolean;\r\n editable: boolean;\r\n onBackList: () => void;\r\n onItemDetails: (state: boolean) => void;\r\n onSubmitted: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst MaintenanceContractsScreen = ({ itemId, startDateEdit, endDateEdit, isDetails, onBackList, onItemDetails, onSubmitted, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [maintenanceContract, setMaintenanceContract] = useState(null);\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n const [useContractOptions, setUseContractOptions] = useState([]);\r\n const [maintenanceContractTypeOptions, setMaintenanceContractTypeOptions] = useState([]);\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n\r\n const [selectPeriodicity, setSelectedPeriodicity] = useState(null);\r\n\r\n const periodicityOptions: SelectValueLabel[] = Object.keys(Periodicity).map(key => ({\r\n value: key,\r\n label: t('common.periodicities.' + key as any)\r\n }));\r\n\r\n const [alertNoticeOptions, setAlertNoticeOptions] = useState([]);\r\n const [showAlertNotice, setShowAlertNotice] = useState(false);\r\n const [showRemoveAlertNotice, setShowRemoveAlertNotice] = useState(false);\r\n const [alertNoticeToRemoveIndex, setAlertNoticeToRemoveIndex] = useState(null);\r\n const [alertNoticeIdsToRemove, setAlertNoticeIdsToRemove] = useState([]);\r\n\r\n\r\n const [includeContract, setIncludeContract] = useState(false);\r\n const [savedFiles, setSavedFiles] = useState([]);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, getValues, setValue, control, errors, reset, watch } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasContractsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CONTRACTS_WRITE']);\r\n\r\n const alertNotices = useFieldArray({ control: form.control, name: 'alertNotices', keyName: 'formId' as any });\r\n\r\n const [invoiceMode, setInvoiceMode] = useState<'add' | 'list'>('list')\r\n const [invoicesToRemove,setInvoicesToRemove] = useState([])\r\n\r\n const getData = async () => {\r\n setValue('attachmentsToRemove', []);\r\n try {\r\n\r\n Loading.show();\r\n\r\n const useContracts = await UseContractsService.getUseContractsByVehicle(vehicleId, true);\r\n setUseContractOptions(useContracts);\r\n\r\n const maintenanceContractTypesOrig = await MaintenanceContractsService.getMaintenanceContractTypes();\r\n const maintenanceContractTypes = maintenanceContractTypesOrig.map(x => ({ ...x, label: t(`common.maintenance_contract_type.${x.label}` as any) }));\r\n const maintenanceContractTypesOrdered = Utils.sortAlphabetically(maintenanceContractTypes);\r\n setMaintenanceContractTypeOptions(maintenanceContractTypesOrdered);\r\n\r\n const suppliers = await SuppliersService.catalog({ typeName: GenericType.MAINTENANCE } as CatalogSupplierSearchCriteria);\r\n setSupplierOptions(Utils.sortAlphabetically((suppliers || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' }))));\r\n\r\n\r\n const alertNoticesDB: AlertNoticeDto[] = await AlertNoticesService.getAll();\r\n buildAndSetAlertNoticeOptions(alertNoticesDB);\r\n\r\n\r\n if (itemId) {\r\n const result = await MaintenanceContractsService.getById(itemId);\r\n\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCE_CONTRACTS, `Couldn't get the maintenance contract with id: ${itemId}`);\r\n onBackList();\r\n }\r\n\r\n result.startDate = moment(startDateEdit ?? result.startDate).toDate();\r\n result.endDate = moment(endDateEdit ?? result.endDate).toDate();\r\n\r\n reset(result);\r\n\r\n setIncludeContract(result.includeUseContractId ? true : false);\r\n\r\n setValuesFiles(result.attachments);\r\n\r\n setMaintenanceContract(result);\r\n }\r\n setShowAlertNotice(true);\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCE_CONTRACTS, `Couldn't get information to create maintenance contract`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getUseContractAssociate = async (id: string) => {\r\n try {\r\n const result = await UseContractsService.getById(id);\r\n reset({ ...maintenanceContract, includeUseContractId: id, cost: 0, periodicity: result.periodicity, startDate: moment(result.startDate).toDate(), endDate: result.endDate != undefined ? moment(result.endDate).toDate() : undefined, supplierId: supplierOptions.find(x => x.value == result.supplierId) ? result.supplierId : undefined });\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCE_CONTRACTS, `Couldn't get information to use contract associate`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const buildAndSetAlertNoticeOptions = (alertNoticesArr: AlertNoticeDto[]) => {\r\n let mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesArr) {\r\n mappedAlertNotices = alertNoticesArr.filter(item => item.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS).map((x, i) => {\r\n const label: string = x.value + ' ' + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n return { label, value: x.id, fullLabel: x.alertNoticeType }\r\n });\r\n }\r\n setAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n const onSubmit = async (form: MaintenanceContractDto) => {\r\n try {\r\n form.vehicleId = vehicleId;\r\n form.invoicesToDelete = invoicesToRemove;\r\n form.invoices = (form.invoices ?? []).filter(x => x.isNew)\r\n\r\n if(invoiceMode === 'add'){\r\n addToast(t('contracts.invoices.save_invoice_toast'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n if (form.number == null || form.cost == null || !form.startDate || !form.endDate || (!form.periodicity && !includeContract)) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n\r\n Loading.show();\r\n setShowAlertNotice(false);\r\n form.attachments = prepareFilesToSubmit();\r\n\r\n if (form.id) {\r\n await MaintenanceContractsService.update(form, form.attachments ?? [])\r\n } else {\r\n itemId = await MaintenanceContractsService.create(form, form.attachments ?? [])\r\n }\r\n\r\n setInvoicesToRemove([])\r\n getData();\r\n Loading.hide();\r\n onSubmitted();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCE_CONTRACTS, `Couldn't update the maintenance contract with id: ${form.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: MaintenanceContractDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await MaintenanceContractsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n onBackList();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFiles(savedFiles);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n const baseAttachments = getValues('attachments')?.filter(x => !x.id) ?? []\r\n\r\n const invoiceFiles:CustomFile[] = [];\r\n const invoicesToSave = (getValues('invoices') ?? []).filter(x => x.isNew);\r\n invoicesToSave.map(x => invoiceFiles.push(x.file!))\r\n\r\n const allAttachments = [...baseAttachments,...invoiceFiles]\r\n setValuesFiles(baseAttachments);\r\n return allAttachments\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setValue('attachments', files);\r\n setSavedFiles(files?.filter(x => x.id));\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n const addAlertNotice = () => {\r\n alertNotices.append({\r\n id: null\r\n });\r\n }\r\n\r\n const renderAlertNotice = (index: number, an: any) => {\r\n return (\r\n input ? removeAccents(itemFilter.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />);\r\n }\r\n\r\n const removeAlertNotice = () => {\r\n if (alertNoticeToRemoveIndex === null) return;\r\n\r\n if (alertNotices.fields[alertNoticeToRemoveIndex]?.id) {\r\n setAlertNoticeIdsToRemove([...alertNoticeIdsToRemove, alertNotices.fields[alertNoticeToRemoveIndex].id!]);\r\n }\r\n\r\n alertNotices.remove(alertNoticeToRemoveIndex);\r\n\r\n setShowRemoveAlertNotice(false);\r\n }\r\n\r\n const setRemoveAlertNotice = (index: number) => {\r\n setShowRemoveAlertNotice(true);\r\n setAlertNoticeToRemoveIndex(index);\r\n }\r\n\r\n const renderButtons = () => {\r\n return
\r\n {\r\n if (maintenanceContract) reset(maintenanceContract);\r\n onBackList();\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {isDetails && hasContractsWritePolicy &&\r\n showRemoveItemDialog({ id: maintenanceContract?.id } as MaintenanceContractDto)} />\r\n }\r\n {isDetails && hasContractsWritePolicy && onItemDetails(false)}\r\n />}\r\n {!isDetails && hasContractsWritePolicy && }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />\r\n
\r\n }\r\n\r\n const onAddContractInvoice = (invoice: ContractInvoiceDto) => {\r\n const currentInvoices = getValues('invoices') ?? [];\r\n setValue('invoices',[invoice,...currentInvoices])\r\n };\r\n\r\n const onRemoveContractInvoice = (invoice: ContractInvoiceDto) => {\r\n if(!invoice.isNew){\r\n setInvoicesToRemove(x => [...x,invoice.id!])\r\n }\r\n\r\n const currentInvoices = getValues('invoices') ?? [];\r\n const helper = currentInvoices.filter(x => invoice.id !== x.id)\r\n setValue('invoices',[...helper])\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n onBackList()} /> {t('contracts.maintenance_contract.title')}\r\n
\r\n \r\n \r\n \r\n \r\n {\r\n if (!data) {\r\n setIncludeContract(false);\r\n reset({ ...maintenanceContract, includeUseContractId: undefined, supplierId: undefined });\r\n } else {\r\n setIncludeContract(true);\r\n const id = getValues('includeUseContractId')?.toString();\r\n id && getUseContractAssociate(id);\r\n }\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ({ maintenanceContractTypeId: x.value })));\r\n }}\r\n value={value ? maintenanceContractTypeOptions.filter(x => value.find((y: MaintenanceContractTypeItemDto) => y.maintenanceContractTypeId === x.value)) : []}\r\n filterOption={(candidate: any, input: any) => input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"maintenanceContractTypes\"\r\n defaultValue={getValues('maintenanceContractTypes')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!includeContract && \r\n \r\n \r\n {\r\n setSelectedPeriodicity(data ? data.label : null);\r\n }} />\r\n \r\n \r\n }\r\n {!includeContract && \r\n \r\n \r\n \r\n \r\n {includeContract && {'*' + t('contracts.maintenance_contract.included_maintenance_contract_in_cost')}}\r\n \r\n }\r\n \r\n \r\n \r\n
\r\n {\r\n // do nothing.\r\n }}\r\n onChangeRange={(start: Date | null, end: Date | null) => {\r\n const sd = start\r\n ? Utils.generateDate(start.getFullYear(), start.getMonth(), start.getDate())\r\n : null;\r\n setValue('startDate', sd);\r\n\r\n let dateLastDayOfMonth = end;\r\n if (end) {\r\n dateLastDayOfMonth = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);\r\n }\r\n setValue('endDate', dateLastDayOfMonth);\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n x.value == getValues('supplierId')) && Boolean(itemId) ?\r\n [...supplierOptions, { label: getValues('supplierName'), value: getValues('supplierId') }] as SelectValueLabel[] : supplierOptions}\r\n value={isDetails && getValues('supplierId') ? { label: getValues('supplierName'), value: getValues('supplierId') } as SelectValueLabel : null}\r\n rules={{ required: true }} />\r\n \r\n \r\n \r\n\r\n {\r\n
\r\n \r\n {!isDetails && }\r\n
\r\n\r\n {alertNotices.fields.length === 0 &&
\r\n {t('maintenances.without_alert_notices')}\r\n
}\r\n\r\n {!!alertNoticeOptions && !!showAlertNotice && !!alertNotices && alertNotices.fields.map((x, i) => {\r\n return (\r\n \r\n {renderAlertNotice(i, x)}\r\n \r\n {!isDetails && \r\n setRemoveAlertNotice(i)} />\r\n }\r\n )\r\n })}\r\n }\r\n\r\n\r\n
\r\n {renderButtons()}\r\n
\r\n \r\n \r\n \r\n \r\n {t('contracts.insurance_contract.contract_or_proof_purchase')}}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n\r\n \r\n setInvoiceMode(mode)}\r\n invoices={form.watch('invoices') ?? []}\r\n onAddInvoice={onAddContractInvoice}\r\n onRemoveInvoice={onRemoveContractInvoice}\r\n isDetails={isDetails}\r\n />\r\n \r\n
\r\n
\r\n\r\n removeAlertNotice()}\r\n onNo={() => { setShowRemoveAlertNotice(false); setAlertNoticeToRemoveIndex(null) }}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default MaintenanceContractsScreen;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport AlertNoticesService from 'api/alertNotices/AlertNoticesService';\r\nimport { AlertNoticeTypeEnum } from 'api/alertNotices/enums/AlertNoticeTypeEnum';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport { Periodicity } from 'api/contracts/enums/Periodicity';\r\nimport InsuranceContractsService from 'api/contracts/insuranceContract/InsuranceContractsService';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport DateTimePickerRange from 'common/components/dateTimePickerRange/DateTimePickerRange';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport Label from 'common/components/label/Label';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Select from 'common/components/select/Select';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, DEFAULT_LANGUAGE, LOGGER_LOG_TYPE, removeAccents, STORAGE } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useFieldArray, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport { InsuranceContractDto, InsuranceContractTypeItemDto } from '../../../../../../api/contracts/insuranceContract/models/InsuranceContractDto';\r\nimport styles from './InsuranceContractsScreen.module.scss';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { AlertNoticeDto, SelectedAlertNoticeDto } from 'api/alertNotices/models/AlertNoticeDto';\r\nimport Storage from 'common/services/Storage';\r\nimport ContractInvoices from '../invoices/Invoices';\r\nimport { ContractInvoiceDto } from 'api/contracts/invoices/models/InvoiceDto';\r\nimport Separator from 'common/components/separator/Separator';\r\n\r\nexport type Props = {\r\n itemId?: string;\r\n startDateEdit?: Date;\r\n endDateEdit?: Date;\r\n isDetails: boolean;\r\n editable: boolean;\r\n onBackList: () => void;\r\n onItemDetails: (state: boolean) => void;\r\n onSubmitted: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst InsuranceContractsScreen = ({ itemId, editable, startDateEdit, endDateEdit, isDetails, onBackList, onItemDetails, onSubmitted, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, getValues, setValue, control, errors, watch, reset } = form;\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [insuranceContract, setInsuranceContract] = useState(null);\r\n\r\n const [useContractOptions, setUseContractOptions] = useState([]);\r\n const [insuranceContractTypeOptions, setInsuranceContractTypeOptions] = useState([]);\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n\r\n const [selectPeriodicity, setSelectedPeriodicity] = useState(null);\r\n\r\n const periodicityOptions: SelectValueLabel[] = Object.keys(Periodicity).map(key => ({\r\n value: key,\r\n label: t('common.periodicities.' + key as any)\r\n }));\r\n\r\n const [includeContract, setIncludeContract] = useState(false);\r\n\r\n const [savedFiles, setSavedFiles] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasContractsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CONTRACTS_WRITE']);\r\n\r\n const [alertNoticeOptions, setAlertNoticeOptions] = useState([]);\r\n const [showAlertNotice, setShowAlertNotice] = useState(false);\r\n const [showRemoveAlertNotice, setShowRemoveAlertNotice] = useState(false);\r\n const [alertNoticeToRemoveIndex, setAlertNoticeToRemoveIndex] = useState(null);\r\n const [alertNoticeIdsToRemove, setAlertNoticeIdsToRemove] = useState([]);\r\n\r\n const alertNotices = useFieldArray({ control: form.control, name: 'alertNotices', keyName: 'formId' as any });\r\n\r\n const [invoiceMode, setInvoiceMode] = useState<'add' | 'list'>('list')\r\n const [invoicesToRemove,setInvoicesToRemove] = useState([])\r\n\r\n const getData = async () => {\r\n setValue('attachmentsToRemove', []);\r\n try {\r\n\r\n Loading.show();\r\n\r\n const useContracts = await UseContractsService.getUseContractsByVehicle(vehicleId, true);\r\n setUseContractOptions(useContracts);\r\n\r\n const insuranceContractTypesOrig = await InsuranceContractsService.getInsuranceContractTypes();\r\n const insuranceContractTypes = insuranceContractTypesOrig.map(x => ({ ...x, label: t(`common.insurance_contract_types.${x.label}` as any) }));\r\n const insuranceContractTypesOrdered = Utils.sortAlphabetically(insuranceContractTypes);\r\n setInsuranceContractTypeOptions(insuranceContractTypesOrdered);\r\n\r\n\r\n const suppliers = await SuppliersService.catalog({ typeName: GenericType.INSURANCE } as CatalogSupplierSearchCriteria);\r\n setSupplierOptions(Utils.sortAlphabetically((suppliers || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' }))));\r\n\r\n const alertNoticesDB: AlertNoticeDto[] = await AlertNoticesService.getAll();\r\n buildAndSetAlertNoticeOptions(alertNoticesDB);\r\n\r\n if (itemId) {\r\n const result = await InsuranceContractsService.getById(itemId);\r\n\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.INSURANCE_CONTRACTS, `Couldn't get the insurance contract with id: ${itemId}`);\r\n onBackList();\r\n }\r\n\r\n result.startDate = moment(result.startDate).toDate();\r\n result.endDate = moment(result.endDate).toDate();\r\n\r\n reset(result);\r\n\r\n setIncludeContract(result.includeUseContractId ? true : false);\r\n\r\n setValuesFiles(result.attachments);\r\n\r\n setInsuranceContract(result);\r\n }\r\n\r\n setShowAlertNotice(true);\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.INSURANCE_CONTRACTS, `Couldn't get information to create insurance contract`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getUseContractAssociate = async (id: string) => {\r\n try {\r\n const result = await UseContractsService.getById(id);\r\n result.startDate = moment(result.startDate).toDate();\r\n result.endDate = result.endDate != undefined ? moment(result.endDate).toDate() : undefined;\r\n\r\n reset({ ...insuranceContract, includeUseContractId: id, cost: 0, periodicity: result.periodicity, startDate: moment(result.startDate).toDate(), endDate: result.endDate != undefined ? moment(result.endDate).toDate() : undefined, supplierId: supplierOptions.find(x => x.value == result.supplierId) ? result.supplierId : undefined });\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.INSURANCE_CONTRACTS, `Couldn't get information to use contract associate`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const buildAndSetAlertNoticeOptions = (alertNoticesArr: AlertNoticeDto[]) => {\r\n let mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesArr) {\r\n mappedAlertNotices = alertNoticesArr.filter(item => item.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS).map((x, i) => {\r\n const label: string = x.value + ' ' + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n return { label, value: x.id, fullLabel: x.alertNoticeType }\r\n });\r\n }\r\n setAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n const onSubmit = async (form: InsuranceContractDto) => {\r\n try {\r\n form.vehicleId = vehicleId;\r\n form.invoicesToDelete = invoicesToRemove;\r\n form.invoices = form.invoices?.filter(x => x.isNew)\r\n\r\n if(invoiceMode === 'add'){\r\n addToast(t('contracts.invoices.save_invoice_toast'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n if (form.number == null || form.cost == null || (!form.periodicity && !includeContract) || !form.startDate || !form.endDate) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n\r\n\r\n Loading.show();\r\n setShowAlertNotice(false);\r\n form.attachments = prepareFilesToSubmit();\r\n\r\n if (form.id) {\r\n await InsuranceContractsService.update(form, form.attachments ?? [])\r\n } else {\r\n itemId = await InsuranceContractsService.create(form, form.attachments ?? [])\r\n }\r\n\r\n getData();\r\n Loading.hide();\r\n onSubmitted();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.INSURANCE_CONTRACTS, `Couldn't update the insurance contract with id: ${form.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: InsuranceContractDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await InsuranceContractsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n onBackList();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFiles(savedFiles);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n const baseAttachments = getValues('attachments')?.filter(x => !x.id) ?? []\r\n\r\n const invoiceFiles: CustomFile[] = [];\r\n const invoicesToSave = getValues('invoices')?.filter(x => x.isNew);\r\n if (invoicesToSave) {\r\n invoicesToSave.map(x => invoiceFiles.push(x.file!))\r\n }\r\n\r\n const allAttachments = [...baseAttachments,...invoiceFiles]\r\n setValuesFiles(baseAttachments);\r\n return allAttachments\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setValue('attachments', files);\r\n setSavedFiles(files?.filter(x => x.id));\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n const addAlertNotice = () => {\r\n alertNotices.append({\r\n id: null\r\n });\r\n }\r\n\r\n const renderAlertNotice = (index: number, an: any) => {\r\n return (\r\n input ? removeAccents(itemFilter.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />);\r\n }\r\n\r\n const removeAlertNotice = () => {\r\n if (alertNoticeToRemoveIndex === null) return;\r\n\r\n if (alertNotices.fields[alertNoticeToRemoveIndex]?.id) {\r\n setAlertNoticeIdsToRemove([...alertNoticeIdsToRemove, alertNotices.fields[alertNoticeToRemoveIndex].id!]);\r\n }\r\n\r\n alertNotices.remove(alertNoticeToRemoveIndex);\r\n\r\n setShowRemoveAlertNotice(false);\r\n }\r\n\r\n const setRemoveAlertNotice = (index: number) => {\r\n setShowRemoveAlertNotice(true);\r\n setAlertNoticeToRemoveIndex(index);\r\n }\r\n\r\n const onAddContractInvoice = (invoice: ContractInvoiceDto) => {\r\n const currentInvoices = getValues('invoices') ?? [];\r\n setValue('invoices',[invoice,...currentInvoices])\r\n };\r\n\r\n const onRemoveContractInvoice = (invoice: ContractInvoiceDto) => {\r\n if(!invoice.isNew){\r\n setInvoicesToRemove(x => [...x,invoice.id!])\r\n }\r\n\r\n const currentInvoices = getValues('invoices') ?? [];\r\n const helper = currentInvoices.filter(x => invoice.id !== x.id)\r\n setValue('invoices',[...helper])\r\n };\r\n\r\n\r\n const renderButtons = () => {\r\n return
\r\n {\r\n if (insuranceContract) reset(insuranceContract);\r\n onBackList();\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {isDetails && hasContractsWritePolicy && editable &&\r\n showRemoveItemDialog({ id: insuranceContract?.id } as InsuranceContractDto)} />\r\n }\r\n {isDetails && editable && hasContractsWritePolicy && onItemDetails(false)}\r\n />}\r\n {!isDetails && hasContractsWritePolicy && }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />\r\n
\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n onBackList()} /> {t('contracts.insurance_contract.title')}\r\n
\r\n \r\n \r\n \r\n \r\n {\r\n if (!data) {\r\n setIncludeContract(false);\r\n reset({ ...insuranceContract, includeUseContractId: undefined, supplierId: undefined });\r\n } else {\r\n setIncludeContract(true);\r\n const id = getValues('includeUseContractId')?.toString();\r\n id && getUseContractAssociate(id);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ({ insuranceContractTypeId: x.value })));\r\n }}\r\n value={value ? insuranceContractTypeOptions.filter(x => value.find((y: InsuranceContractTypeItemDto) => y.insuranceContractTypeId === x.value)) : []}\r\n filterOption={(candidate: any, input: any) => input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"insuranceContractTypes\"\r\n defaultValue={getValues('insuranceContractTypes')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!includeContract && \r\n \r\n \r\n {\r\n setSelectedPeriodicity(data ? data.label : null);\r\n }} />\r\n \r\n \r\n }\r\n {!includeContract && \r\n \r\n \r\n \r\n \r\n {includeContract && {'*' + t('contracts.insurance_contract.included_maintenance_contract_in_cost')}}\r\n \r\n }\r\n \r\n \r\n \r\n
\r\n {\r\n // do nothing.\r\n }}\r\n onChangeRange={(start: Date | null, end: Date | null) => {\r\n const sd = start ? Utils.generateDate(start.getFullYear(), start.getMonth(), start.getDate()) : null;\r\n setValue('startDate', sd);\r\n\r\n let dateLastDayOfMonth = end;\r\n if (end) {\r\n dateLastDayOfMonth = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);\r\n }\r\n setValue('endDate', dateLastDayOfMonth);\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n x.value == getValues('supplierId')) && Boolean(itemId) ?\r\n [...supplierOptions, { label: getValues('supplierName'), value: getValues('supplierId') }] as SelectValueLabel[] : supplierOptions}\r\n value={isDetails && getValues('supplierId') ? { label: getValues('supplierName'), value: getValues('supplierId') } as SelectValueLabel : null} />\r\n \r\n \r\n \r\n\r\n {\r\n
\r\n \r\n {!isDetails && }\r\n
\r\n\r\n {alertNotices.fields.length === 0 &&
\r\n {t('maintenances.without_alert_notices')}\r\n
}\r\n\r\n {!!alertNoticeOptions && !!showAlertNotice && !!alertNotices && alertNotices.fields.map((x, i) => {\r\n return (\r\n \r\n {renderAlertNotice(i, x)}\r\n \r\n {!isDetails && \r\n setRemoveAlertNotice(i)} />\r\n }\r\n )\r\n })}\r\n }\r\n\r\n
\r\n {renderButtons()}\r\n
\r\n \r\n \r\n \r\n \r\n {t('contracts.insurance_contract.insurance_certificate')}}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n\r\n \r\n\r\n setInvoiceMode(mode)}\r\n invoices={form.watch('invoices') ?? []}\r\n onAddInvoice={onAddContractInvoice}\r\n onRemoveInvoice={onRemoveContractInvoice}\r\n isDetails={isDetails}\r\n />\r\n \r\n
\r\n
\r\n\r\n removeAlertNotice()}\r\n onNo={() => { setShowRemoveAlertNotice(false); setAlertNoticeToRemoveIndex(null) }}\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\nexport default InsuranceContractsScreen;\r\n","import ListContractsScreen from './components/listContractsScreen/ListContractsScreen';\r\nimport { useEffect, useState } from 'react';\r\nimport { ContractModel } from '../../../../api/contracts/enums/ContractModel';\r\nimport { UseContractDto } from 'api/contracts/useContract/models/UseContractDto';\r\nimport { MaintenanceContractDto } from 'api/contracts/maintenanceContract/models/MaintenanceContractDto';\r\nimport { InsuranceContractDto } from 'api/contracts/insuranceContract/models/InsuranceContractDto';\r\nimport UseContractScreen from '../carContractTab/components/useContractScreen/UseContractScreen';\r\nimport MaintenanceContractsScreen from '../carContractTab/components/maintenanceContractsScreen/MaintenanceContractsScreen';\r\nimport InsuranceContractsScreen from '../carContractTab/components/insuranceContractsScreen/InsuranceContractsScreen';\r\nimport Loading from 'common/services/Loading';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport styles from './CarContractTab.module.scss';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n CONTRACT = 'CONTRACT'\r\n}\r\n\r\ntype Props = {\r\n vehicle?: VehicleDto;\r\n onDeleteFromList: () => void;\r\n tourReRender: () => void;\r\n}\r\n\r\nconst CarContractTab = ({ vehicle, onDeleteFromList, tourReRender }: Props) => {\r\n const { vehicleId, type, tabId, itemId, contractType, contractId, itemType } = useParams<{ vehicleId: string, type: Types, tabId: string, itemType: string, itemId: string, contractType: string, contractId: string }>();\r\n const history = useHistory();\r\n\r\n const [useContractsLoaded, setUseContractsLoaded] = useState(null);\r\n const [maintenanceContractsLoaded, setMaintenanceContractsLoaded] = useState(null);\r\n const [insuranceContractsLoaded, setInsuranceContractsLoaded] = useState(null);\r\n const [render, setRender] = useState(0);\r\n\r\n const listDidLoad = () => {\r\n if (useContractsLoaded && maintenanceContractsLoaded && insuranceContractsLoaded) {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n Loading.show();\r\n }, []);\r\n\r\n useEffect(() => {\r\n listDidLoad();\r\n }, [useContractsLoaded, maintenanceContractsLoaded, insuranceContractsLoaded]);\r\n\r\n return (\r\n
\r\n {(itemType??'list') === ScreenType.LIST.toString().toLowerCase() &&
\r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.USE.toString().toLowerCase()}/new`);\r\n }}\r\n onClickItem={(item: UseContractDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.USE.toString().toLowerCase()}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n onListDidLoad={() => setUseContractsLoaded(true)}\r\n onDeleteFromList={onDeleteFromList}\r\n tourReRender={tourReRender}\r\n listReRender={()=> setRender(render+1)}\r\n >\r\n \r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.MAINTENANCE.toString().toLowerCase()}/new`);\r\n }}\r\n onClickItem={(item: MaintenanceContractDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.MAINTENANCE.toString().toLowerCase()}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n onListDidLoad={() => setMaintenanceContractsLoaded(true)}\r\n onDeleteFromList={onDeleteFromList}\r\n tourReRender={tourReRender}\r\n listReRender={()=> setRender(render+1)}>\r\n \r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.INSURANCE.toString().toLowerCase()}/new`);\r\n }}\r\n onClickItem={(item: InsuranceContractDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.INSURANCE.toString().toLowerCase()}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n onListDidLoad={() => setInsuranceContractsLoaded(true)}\r\n onDeleteFromList={onDeleteFromList}\r\n tourReRender={tourReRender}\r\n listReRender={()=> setRender(render+1)}>\r\n \r\n
}\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() && itemId === ContractModel.USE.toString().toLowerCase() &&\r\n history.goBack()}\r\n onItemDetails={(state: boolean) => history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.USE.toString().toLowerCase()}/${state ? 'details' : 'edit'}/${contractId}`)}\r\n onSubmitted={() => history.goBack()}>\r\n }\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() && itemId === ContractModel.MAINTENANCE.toString().toLowerCase() &&\r\n history.goBack()}\r\n onItemDetails={(state: boolean) => history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.MAINTENANCE.toString().toLowerCase()}/${state ? 'details' : 'edit'}/${contractId}`)}\r\n onSubmitted={() => history.goBack()}>\r\n }\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() && itemId === ContractModel.INSURANCE.toString().toLowerCase() &&\r\n history.goBack()}\r\n onItemDetails={(state: boolean) => history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${ContractModel.INSURANCE.toString().toLowerCase()}/${state ? 'details' : 'edit'}/${contractId}`)}\r\n onSubmitted={() => history.goBack()}>\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default CarContractTab;","import Http from '../../common/services/Http';\r\nimport { DashboardSearchCriteria } from './criterias/DashboardSearchCriteria';\r\nimport { ConsumesDashboardDto } from './dtos/ConsumesDashboardDto';\r\nimport { CountersDashboardDto } from './dtos/CountersDashboardDto';\r\nimport DashboardDto from './dtos/DashboardDto';\r\nimport { ExpensesDashboardDto } from './dtos/ExpensesDashboardDto';\r\nimport { MonthlyCostDashboardDto } from './dtos/MonthlyCostDashboardDto';\r\nimport { MonthlyRoutesDashboardDto } from './dtos/MonthlyRouteDashboardDto';\r\nimport { NextMaintenancesDashboardDto } from './dtos/NextMaintenancesDashboardDto';\r\n\r\nclass DashboardService {\r\n\tpublic async get(criteria: DashboardSearchCriteria) {\r\n\t\tconst data = await Http.get('dashboard', criteria);\r\n\r\n\t\t// Fix dates\r\n\t\tif (data) {\r\n\t\t\tdata.consumes?.items.forEach(c => c.items.forEach(cc => (cc.date = new Date(cc.date))));\r\n\t\t\tdata.monthlyCost?.items.forEach(c => c.items.forEach(cc => (cc.date = new Date(cc.date))));\r\n\t\t\tif (data.monthlyRoute && data.monthlyRoute.items) {\r\n\t\t\t\tdata.monthlyRoute.items.forEach(cc => (cc.date = new Date(cc.date)));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tpublic async getCounters(criteria: DashboardSearchCriteria) {\r\n\t\treturn await Http.get('dashboard/counters', criteria);\r\n\t}\r\n\r\n\tpublic async getExpenses(criteria: DashboardSearchCriteria) {\r\n\t\treturn await Http.get('dashboard/expenses', criteria);\r\n\t}\r\n\r\n\tpublic async getConsumes(criteria: DashboardSearchCriteria) {\r\n\t\tconst data = await Http.get('dashboard/consumes', criteria);\r\n\t\tif (data) {\r\n\t\t\tdata.items.forEach(c => c.items.forEach(cc => (cc.date = new Date(cc.date))));\r\n\t\t}\r\n\t\treturn data;\r\n\t}\r\n\r\n\tpublic async getNextMaintenances(criteria: DashboardSearchCriteria) {\r\n\t\treturn await Http.get('dashboard/nextmaintenances', criteria);\r\n\t}\r\n\r\n\tpublic async getMonthlyCost(criteria: DashboardSearchCriteria) {\r\n\t\tconst data = await Http.get('dashboard/monthlycost', criteria);\r\n\t\tif (data) {\r\n\t\t\tdata.items.forEach(c => c.items.forEach(cc => (cc.date = new Date(cc.date))));\r\n\t\t}\r\n\t\treturn data;\r\n\t}\r\n\r\n\tpublic async getMonthlyRoutes(criteria: DashboardSearchCriteria) {\r\n\t\tconst data = await Http.get('dashboard/monthlyroutes', criteria);\r\n\t\tif (data && data.items) {\r\n\t\t\tdata.items.forEach(cc => (cc.date = new Date(cc.date)));\r\n\t\t}\r\n\t\treturn data;\r\n\t}\r\n\r\n\r\n}\r\n\r\nexport default new DashboardService();\r\n","import React, { useRef } from 'react';\r\nimport DateTimePicker, { Props as DateTimePickerProps } from './DateTimePicker';\r\nimport { FieldName, FieldValues, useController, UseControllerOptions } from 'react-hook-form';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport ReactDatePicker from 'react-datepicker';\r\nimport { DATEPICKER_FORMAT_DEFAULT } from '../../../Config';\r\nimport styles from './DateTimePicker.module.scss';\r\n\r\ntype Props = {\r\n nameFrom: FieldName;\r\n nameTo: FieldName;\r\n placeholderFrom?: string;\r\n placeholderTo?: string;\r\n} & Omit & Omit, 'name'>;\r\n\r\nconst DateRangePickerController = ({ control, nameFrom, nameTo, rules, defaultValue, placeholderFrom, placeholderTo, ...props }: Props) => {\r\n const refFrom = useRef(null);\r\n const refTo = useRef(null);\r\n\r\n const { field: fieldFrom } = useController({\r\n name: nameFrom,\r\n rules,\r\n defaultValue,\r\n control,\r\n });\r\n const { field: fieldTo } = useController({\r\n name: nameTo,\r\n rules,\r\n defaultValue,\r\n control,\r\n });\r\n\r\n return (\r\n
\r\n }\r\n clickInText={true}\r\n onClickInText={() => refFrom.current?.setOpen(true)}\r\n />}\r\n onChange={date => {\r\n fieldFrom.onChange(date);\r\n }}\r\n selected={fieldFrom.value}\r\n startDate={fieldFrom.value}\r\n endDate={fieldTo.value}\r\n selectsStart\r\n placeholderText={placeholderFrom || undefined}\r\n />\r\n }\r\n clickInText={true}\r\n onClickInText={() => refTo.current?.setOpen(true)}\r\n />}\r\n onChange={date => {\r\n fieldTo.onChange(date);\r\n }}\r\n selected={fieldTo.value}\r\n startDate={fieldFrom.value}\r\n endDate={fieldTo.value}\r\n selectsEnd\r\n placeholderText={placeholderTo || undefined}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default DateRangePickerController;\r\n","import Button from 'common/components/button/Button';\r\nimport DateRangePickerController from 'common/components/dateTimePicker/DateRangePickerController';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport dayjs from 'dayjs';\r\nimport React from 'react';\r\nimport { useForm, useWatch } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './FiltersView.module.scss';\r\n\r\nexport const timePeriodToDates = (timePeriod: TimePeriod) => {\r\n if (timePeriod === TimePeriod.CURRENT_MONTH) {\r\n return [dayjs().startOf('month').toDate(), dayjs().endOf('month').toDate()];\r\n } else if (timePeriod === TimePeriod.PREVIOUS_MONTH) {\r\n return [\r\n dayjs().subtract(1, 'months').startOf('month').toDate(),\r\n dayjs().subtract(1, 'months').endOf('month').toDate(),\r\n ];\r\n } else if (timePeriod === TimePeriod.PREVIOUS_3_MONTHS) {\r\n return [\r\n dayjs().subtract(3, 'months').startOf('month').toDate(),\r\n dayjs().subtract(1, 'months').endOf('month').toDate(),\r\n ];\r\n }\r\n return [null, null];\r\n};\r\n\r\nexport enum TimePeriod {\r\n CURRENT_MONTH = 'CURRENT_MONTH',\r\n PREVIOUS_MONTH = 'PREVIOUS_MONTH',\r\n PREVIOUS_3_MONTHS = 'PREVIOUS_3_MONTHS',\r\n OTHER = 'OTHER',\r\n}\r\n\r\nexport type FiltersFormModel = {\r\n dateFrom: Date | null;\r\n dateTo: Date | null;\r\n vehicleId: string | null;\r\n timePeriod: TimePeriod | null;\r\n inactives: boolean | null;\r\n};\r\n\r\nexport type FiltersProps = {\r\n onFilter: (model: FiltersFormModel) => void;\r\n filters: FiltersFormModel;\r\n} & (\r\n { canSelectVehicle: true; vehicles: SelectValueLabel[]; } |\r\n { canSelectVehicle: false; vehicles?: undefined }\r\n )\r\n\r\nconst FiltersView = ({ onFilter, vehicles, filters, canSelectVehicle }: FiltersProps) => {\r\n const { t } = useTranslation();\r\n const form = useForm({\r\n defaultValues: filters,\r\n });\r\n const { handleSubmit, control, reset, setValue } = form;\r\n const timePeriodWatch = useWatch({ name: 'timePeriod', control });\r\n\r\n const onSubmit = (model: FiltersFormModel) => {\r\n onFilter(model);\r\n };\r\n\r\n const onTimePeriodChange = (timePeriod: TimePeriod) => {\r\n const [startDate, endDate] = timePeriodToDates(timePeriod);\r\n setValue('dateFrom', startDate);\r\n setValue('dateTo', endDate);\r\n };\r\n\r\n const onClearFilters = () => {\r\n const [startDate, endDate] = timePeriodToDates(TimePeriod.CURRENT_MONTH);\r\n const tempModel: FiltersFormModel = {\r\n dateFrom: startDate,\r\n dateTo: endDate,\r\n timePeriod: TimePeriod.CURRENT_MONTH,\r\n vehicleId: null,\r\n inactives: true\r\n };\r\n reset(tempModel);\r\n onFilter(tempModel);\r\n }\r\n\r\n const timePeriods: SelectValueLabel[] = Object.keys(TimePeriod)\r\n .filter(key => typeof key === 'string')\r\n .map(key => {\r\n return { value: key, label: t(('dashboard.time_periods.' + key) as any) };\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n onTimePeriodChange((TimePeriod as any)[tp!.value])}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {canSelectVehicle && \r\n \r\n \r\n }\r\n\r\n {canSelectVehicle && \r\n \r\n \r\n }\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FiltersView;","import Popover from 'common/components/popover/Popover';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React from 'react';\r\nimport styles from './FiltersButton.module.scss';\r\nimport FiltersView, { FiltersFormModel, FiltersProps } from './FiltersView';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\n\r\nconst getTotal = (f: FiltersFormModel, canSelectVehicle: boolean) => {\r\n let total = 0;\r\n\r\n if (f.dateFrom || f.dateTo) {\r\n total++;\r\n }\r\n\r\n if (f.vehicleId && canSelectVehicle) {\r\n total++;\r\n }\r\n\r\n if (f.timePeriod) {\r\n total++;\r\n }\r\n\r\n if (f.inactives) {\r\n total++;\r\n }\r\n\r\n return total;\r\n}\r\n\r\nconst FiltersButton = ({ filters, onFilter, ...props }: FiltersProps) => {\r\n const total = getTotal(filters, props.canSelectVehicle);\r\n return (\r\n (\r\n {\r\n setIsPopoverOpen(false);\r\n onFilter(model);\r\n }}\r\n />\r\n )}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {total > 0 &&\r\n
{total}
\r\n }\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FiltersButton;","import { VictoryLabel } from 'victory';\r\n\r\nconst ChartLegendLabel = (props: any) => {\r\n const textSize = props.datum.textSize;\r\n const height = textSize.height + 5;\r\n return (\r\n \r\n {\r\n if (props.onClick && props.datum.clickable) {\r\n props.onClick(props);\r\n }\r\n }}\r\n />\r\n {\r\n if (props.onClick && props.datum.clickable) {\r\n props.onClick(props);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ChartLegendLabel;\r\n","const ChartEmptyLabel = () => (\r\n \r\n);\r\n\r\nexport default ChartEmptyLabel;","import { useEffect, useLayoutEffect } from 'react'\r\n\r\nexport const useIsomorphicLayoutEffect =\r\n typeof window !== 'undefined' ? useLayoutEffect : useEffect\r\n\r\n","import { RefObject, useEffect, useRef } from 'react'\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'\r\n\r\nfunction useEventListener(\r\n eventName: K,\r\n handler: (event: WindowEventMap[K]) => void,\r\n): void\r\nfunction useEventListener<\r\n K extends keyof HTMLElementEventMap,\r\n T extends HTMLElement = HTMLDivElement,\r\n >(\r\n eventName: K,\r\n handler: (event: HTMLElementEventMap[K]) => void,\r\n element: RefObject,\r\n): void\r\n\r\nfunction useEventListener<\r\n KW extends keyof WindowEventMap,\r\n KH extends keyof HTMLElementEventMap,\r\n T extends HTMLElement | void = void,\r\n >(\r\n eventName: KW | KH,\r\n handler: (\r\n event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event,\r\n ) => void,\r\n element?: RefObject,\r\n) {\r\n // Create a ref that stores handler\r\n const savedHandler = useRef(handler)\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n savedHandler.current = handler\r\n }, [handler])\r\n\r\n useEffect(() => {\r\n // Define the listening target\r\n const targetElement: any = element?.current || window\r\n if (!(targetElement && targetElement.addEventListener)) {\r\n return\r\n }\r\n\r\n // Create event listener that calls handler function stored in ref\r\n const eventListener: typeof handler = event => savedHandler.current(event)\r\n\r\n targetElement.addEventListener(eventName, eventListener)\r\n\r\n // Remove event listener on cleanup\r\n return () => {\r\n targetElement.removeEventListener(eventName, eventListener)\r\n }\r\n }, [eventName, element])\r\n}\r\n\r\nexport default useEventListener\r\n","import { useCallback, useState } from 'react'\r\n\r\nimport useEventListener from './useEventListener'\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'\r\n\r\ninterface Size {\r\n width: number\r\n height: number\r\n}\r\n\r\nfunction useElementSize(): [\r\n (node: T | null) => void,\r\n Size,\r\n] {\r\n // Mutable values like 'ref.current' aren't valid dependencies\r\n // because mutating them doesn't re-render the component.\r\n // Instead, we use a state as a ref to be reactive.\r\n const [ref, setRef] = useState(null)\r\n const [size, setSize] = useState({\r\n width: 0,\r\n height: 0,\r\n })\r\n\r\n // Prevent too many rendering using useCallback\r\n const handleSize = useCallback(() => {\r\n setSize({\r\n width: ref?.offsetWidth || 0,\r\n height: ref?.offsetHeight || 0,\r\n })\r\n\r\n }, [ref?.offsetHeight, ref?.offsetWidth])\r\n\r\n useEventListener('resize', handleSize)\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n handleSize()\r\n }, [ref?.offsetHeight, ref?.offsetWidth])\r\n\r\n return [setRef, size]\r\n}\r\n\r\nexport default useElementSize\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n\tRect,\r\n\tVictoryAxis,\r\n\tVictoryBar,\r\n\tVictoryChart,\r\n\tVictoryGroup,\r\n\tVictoryLabel,\r\n\tVictoryLegend,\r\n\tVictoryLine,\r\n} from 'victory';\r\nimport dayjs from 'dayjs';\r\nimport { ConsumeItemTypeDashboardDto, ConsumesDashboardDto } from 'api/dashboard/dtos/ConsumesDashboardDto';\r\nimport styles from './ConsumesChart.module.scss';\r\nimport Utils from 'common/services/Utils';\r\nimport { DASHBOARD_COLORS, DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport { DashboardConsumeTypeEnum } from 'api/dashboard/enums/DashboardConsumeTypeEnum';\r\nimport ChartLegendLabel from 'common/components/charts/ChartLegendLabel';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport ChartEmptyLabel from 'common/components/charts/ChartEmptyLabel';\r\nimport useElementSize from 'common/hooks/useElementSize';\r\nimport Storage from 'common/services/Storage';\r\nimport { DashboardFuelTypeEnum } from 'api/dashboard/enums/DashboardFuelTypeEnum';\r\n\r\nconst BarLabel = (props: any) => (\r\n\t}\r\n\t\tverticalAnchor=\"middle\"\r\n\t\trenderInPortal={false}\r\n\t/>\r\n);\r\n\r\ntype Props = {\r\n\tdata: ConsumesDashboardDto;\r\n\tselectedYear: number | null;\r\n};\r\n\r\nexport interface ConsumesDashboardHiddenDataDto {\r\n\ttype: DashboardConsumeTypeEnum;\r\n\tfuelName: DashboardFuelTypeEnum;\r\n}\r\n\r\nconst ConsumesChart = ({ data, selectedYear }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst [hiddenData, setHiddenData] = useState([]);\r\n\tconst [reRenderKey, setReRenderKey] = useState(new Date().getTime());\r\n\tconst [containerRef, { width, height }] = useElementSize();\r\n\tconst locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n\tuseEffect(() => {\r\n\t\tsetReRenderKey(new Date().getTime());\r\n\t}, [data, selectedYear]);\r\n\r\n\tif (!data.items || data.items.length === 0) {\r\n\t\treturn
{t('dashboard.no_enough_information')}
;\r\n\t}\r\n\r\n\tconst viewWidth = 1050;\r\n\tconst viewHeight = 400;\r\n\r\n\tconst chartWidth = viewWidth;\r\n\tconst chartHeight = viewHeight - 50;\r\n\tconst barWidth = 25;\r\n\r\n\tconst legendData = [\r\n\t\t{\r\n\t\t\tname: t('dashboard.consume_average'),\r\n\t\t\tsymbol: { fill: Colors.primaryDark, type: 'minus' },\r\n\t\t\tlabels: { fill: Colors.primaryDark },\r\n\t\t\tclickable: false,\r\n\t\t},\r\n\t\t...data.items.map(x => ({\r\n\t\t\t//name: t(`dashboard.consumes_types.${x.type}` as any),\r\n\t\t\tname: t(`vehicle.fuels.${x.fuelName}` as any),\r\n\t\t\tfuelName: x.fuelName,\r\n\t\t\ttype: x.type,\r\n\t\t\tsymbol: { fill: !hiddenData.find(a => a.type === x.type && a.fuelName === x.fuelName) ? DASHBOARD_COLORS.fuels[x.fuelName] : Colors.gray17 },\r\n\t\t\tlabels: { fill: Colors.primaryDark },\r\n\t\t\tclickable: true,\r\n\t\t})),\r\n\t];\r\n\r\n\tlet itemsData = data.items.filter(x => !hiddenData.find(h => h.type === x.type && h.fuelName === x.fuelName));\r\n\r\n\tif (selectedYear) {\r\n\t\titemsData = itemsData.map(x => {\r\n\t\t\treturn {\r\n\t\t\t\t...x,\r\n\t\t\t\titems: x.items.filter(s => dayjs(s.date).year() === selectedYear)\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\r\n\tconst allItems = Utils.flatten(itemsData.map(x => x.items));\r\n\tconst allDates = allItems\r\n\t\t.map(x => x.date)\r\n\t\t.filter((date, i, self) => self.findIndex(d => d.getTime() === date.getTime()) === i);\r\n\tconst allValues = allItems.map(x => x.value);\r\n\tconst average = allValues.reduce((a, b) => a + b, 0) / allValues.length;\r\n\tconst highestValue = Math.max(...allValues);\r\n\r\n\tconst monthsDiff = allDates?.length ? Utils.getMonthsInDates(allDates).length : 0;\r\n\r\n\tconst chartPadding = { top: 50, left: 25, right: 25, bottom: 50 };\r\n\r\n\tconst onClickLegend = (propsData: any) => {\r\n\t\tconst type = propsData.datum.type;\r\n\t\tconst fuelName = propsData.datum.fuelName;\r\n\t\tif (!type) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (hiddenData.find(x => x.type === type && x.fuelName === fuelName )) {\r\n\t\t\tsetHiddenData(hiddenData.filter(x => !(x.type === type && x.fuelName === fuelName)));\r\n\t\t} else {\r\n\t\t\tsetHiddenData([...hiddenData, { type, fuelName }]);\r\n\t\t}\r\n\r\n\t\tsetReRenderKey(new Date().getTime());\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{/* Average Line */}\r\n\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/* Main bars chart */}\r\n\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t x.items.length > 1) ? 50 : 500 }}\r\n\t\t\t\t\t\tkey={'chart-' + reRenderKey}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{itemsData.map((item, i) => (\r\n\t\t\t\t\t\t\t\t null}\r\n\t\t\t\t\t\t\t\t\tlabelComponent={}\r\n\t\t\t\t\t\t\t\t\tevents={[\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\ttarget: 'data',\r\n\t\t\t\t\t\t\t\t\t\t\teventHandlers: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'data',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: propsData => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst fill = propsData.style && propsData.style.fill;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn fill === DASHBOARD_COLORS.fuels[item.fuelName]\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill: DASHBOARD_COLORS.fuels[item.fuelName],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: propsData => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst fill = propsData.style && propsData.style.fill;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn fill === DASHBOARD_COLORS.fuels[item.fuelName]\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext: Utils.formatCurrency(propsData.datum.value),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill: DASHBOARD_COLORS.fuels[item.fuelName],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t Utils.capitalize(monthsDiff > 5 ? dayjs(x).locale(locale).format('MMMM')[0] : dayjs(x).locale(locale).format('MMMM'))}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\ttickLabels: { fill: Colors.black, userSelect: 'none', fontSize: 25 },\r\n\t\t\t\t\t\t\t\taxis: { stroke: Colors.gray3 },\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/* Legends */}\r\n\t\t\t\t}\r\n\t\t\t\t\tstyle={{ labels: { fontSize: 25 } }}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ConsumesChart;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { MonthlyCostItemTypeDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport Utils from 'common/services/Utils';\r\nimport dayjs from 'dayjs';\r\nimport Box, { Props as BoxProps } from 'common/components/box/Box';\r\nimport ConsumesChart from './ConsumesChart';\r\nimport { ReactComponent as ArrowDown } from 'assets/svg/chevron_down.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport Colors from 'styles/export/colors.module.scss'\r\nimport styles from './ConsumesChartBox.module.scss';\r\nimport { ConsumesDashboardDto } from 'api/dashboard/dtos/ConsumesDashboardDto';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\n\r\ntype Props = {\r\n\tdata: ConsumesDashboardDto | null;\r\n\tisLoading?: boolean;\r\n} & BoxProps;\r\n\r\nconst ConsumesChartBox = ({ data, isLoading, ...props }: Props) => {\r\n\tconst [selectedYearIndex, setSelectedYearIndex] = useState(null);\r\n\r\n\tconst allYears = Utils.flatten((data?.items || []).map(x => x.items)).map(x =>\r\n\t\tx.date.getFullYear(),\r\n\t);\r\n\tconst yearsOptions = allYears\r\n\t\t.filter((year, i, self) => self.findIndex(d => d === year) === i)\r\n\t\t.sort((a, b) => a - b);\r\n\tconst existsMoreThanOneYear = allYears.every((year, _, arr) => year === arr[0]) === false;\r\n\r\n\tconst selectedYear = selectedYearIndex !== null ? yearsOptions[selectedYearIndex] : null;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (existsMoreThanOneYear) {\r\n\t\t\tconst currYear = dayjs().year();\r\n\t\t\tconst currYearExistIndex = yearsOptions.findIndex(year => year === currYear);\r\n\r\n\t\t\tsetSelectedYearIndex(currYearExistIndex !== null ? currYearExistIndex : yearsOptions[0]);\r\n\t\t} else {\r\n\t\t\tsetSelectedYearIndex(null);\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\tif (!data && !isLoading) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst onPreviousYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex > 0) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex - 1);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onNextYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex < yearsOptions.length - 1) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex + 1);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{selectedYear}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t\t: undefined}\r\n\t\t>\r\n\t\t\t{isLoading ?
: data && }\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ConsumesChartBox;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport styles from './ExpensesChart.module.scss';\r\nimport { VictoryLabel, VictoryLegend, VictoryPie } from 'victory';\r\nimport Utils from 'common/services/Utils';\r\nimport { ExpensesDashboardDto } from 'api/dashboard/dtos/ExpensesDashboardDto';\r\nimport { DashboardExpenseTypeEnum } from 'api/dashboard/enums/DashboardExpenseTypeEnum';\r\nimport useElementSize from 'common/hooks/useElementSize';\r\nimport ChartEmptyLabel from 'common/components/charts/ChartEmptyLabel';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\nimport { DASHBOARD_COLORS } from 'Config';\r\n\r\nconst LegendLabel = (props: any) => {\r\n\tconst textSize = props.datum.textSize;\r\n\tconst height = textSize.height * 2 + 5;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tif (props.onClick) {\r\n\t\t\t\t\t\tprops.onClick(props);\r\n\t\t\t\t\t}\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\t\tif (props.onClick) {\r\n\t\t\t\t\t\t\tprops.onClick(props);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\t\tif (props.onClick) {\r\n\t\t\t\t\t\t\tprops.onClick(props);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\ntype Props = {\r\n\tdata: ExpensesDashboardDto | null;\r\n\tisLoading?: boolean;\r\n};\r\n\r\nconst ExpensesChart = ({ data, isLoading }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst [hiddenData, setHiddenData] = useState([]);\r\n\tconst [containerRef, { width, height }] = useElementSize();\r\n\r\n\tconst viewWidth = width * 1.6;\r\n\tconst viewHeight = height;\r\n\r\n\tconst chartWidth = viewWidth;\r\n\tconst chartHeight = viewHeight;\r\n\r\n\r\n\tconst viewBoxWidth = width * 1.1;\r\n\tconst viewBoxHeight = height * 1.1;\r\n\r\n\tif (!data && !isLoading) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (!data?.items || data?.items.length === 0) {\r\n\t\treturn
{t('dashboard.no_enough_information')}
;\r\n\t}\r\n\r\n\tconst itemsData = data?.items.filter(x => !hiddenData.find(h => h === x.type));\r\n\tconst categories = itemsData.map(x => x.type);\r\n\tconst colorScale = itemsData.map(x => x.isSystem ? DASHBOARD_COLORS.expenses[(x.type as DashboardExpenseTypeEnum)] : x.color!);\r\n\tconst legendData = Utils.sortAlphabeticallyByKey(data?.items.map(x => ({\r\n\t\tname: x.isSystem ? t(`dashboard.expenses_types.${x.type}` as any) : x.type,\r\n\t\ttype: x.type,\r\n\t\tvalue: x.value,\r\n\t\tsymbol: {\r\n\t\t\tfill: !hiddenData.find(a => a === x.type) ? (x.isSystem ? DASHBOARD_COLORS.expenses[(x.type as DashboardExpenseTypeEnum)] : x.color) : Colors.gray17,\r\n\t\t},\r\n\t\tclickable: true,\r\n\t})), 'name');\r\n\r\n\tconst total = itemsData.map(x => x.value).reduce((a, b) => a + b, 0);\r\n\r\n\tconst onClickLegend = (propsData: any) => {\r\n\t\tconst type = propsData.datum.type;\r\n\r\n\t\tif (hiddenData.find(x => x === type)) {\r\n\t\t\tsetHiddenData(hiddenData.filter(x => x !== type));\r\n\t\t} else {\r\n\t\t\tsetHiddenData([...hiddenData, type]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{isLoading ?
: \r\n\t\t\t\t}\r\n\r\n\t\t\t\t/>\r\n\t\t\t\t}\r\n\t\t\t\t\tstyle={{ labels: { fontSize: 15, fontFamily: 'Roboto' }, data: { width: '100%', display: 'flex' } }}\r\n\t\t\t\t\trowGutter={15}\r\n\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ExpensesChart;\r\n","export enum DashboardMonthlyCostTypeEnum {\r\n\tFIXED_COST = 'FIXED_COST',\r\n\tVARIABLE_COST = 'VARIABLE_COST',\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport { Rect, VictoryAxis, VictoryBar, VictoryChart, VictoryGroup, VictoryLabel, VictoryLegend, VictoryLine } from 'victory';\r\nimport styles from './MonthlyCostChart.module.scss';\r\nimport { MonthlyCostDashboardDto, MonthlyCostItemTypeDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport { DashboardMonthlyCostTypeEnum } from 'api/dashboard/enums/DashboardMonthlyCostTypeEnum';\r\nimport Utils from 'common/services/Utils';\r\nimport { DASHBOARD_COLORS, DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport ChartLegendLabel from 'common/components/charts/ChartLegendLabel';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport ChartEmptyLabel from 'common/components/charts/ChartEmptyLabel';\r\nimport useElementSize from 'common/hooks/useElementSize';\r\nimport dayjs from 'dayjs';\r\nimport Storage from 'common/services/Storage';\r\n\r\nconst BarLabel = (props: any) => (\r\n\t}\r\n\t\tverticalAnchor=\"middle\"\r\n\t\trenderInPortal={false}\r\n\t/>\r\n);\r\n\r\ntype Props = {\r\n\tdata: MonthlyCostDashboardDto;\r\n\tselectedYear: number | null;\r\n};\r\n\r\nconst MonthlyCostChart = ({ data, selectedYear }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst [hiddenData, setHiddenData] = useState([]);\r\n\tconst [reRenderKey, setReRenderKey] = useState(new Date().getTime());\r\n\tconst [containerRef, { width, height }] = useElementSize();\r\n\tconst [fixedCostsTotal, setFixedCostsTotal] = useState(0);\r\n\tconst [variableCostsTotal, setVariableCostsTotal] = useState(0);\r\n\tconst [costsTotal, setCostsTotal] = useState(0);\r\n\tconst locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n\tuseEffect(() => {\r\n\t\tsetReRenderKey(new Date().getTime());\r\n\t\tselectedYear && setCosts(selectedYear);\r\n\t}, [data, selectedYear]);\r\n\r\n\tif (!data.items || data.items.length === 0) {\r\n\t\treturn
{t('dashboard.no_enough_information')}
;\r\n\t}\r\n\r\n\tconst viewWidth = 650;\r\n\tconst viewHeight = 170;\r\n\r\n\tconst chartWidth = viewWidth;\r\n\tconst chartHeight = viewHeight - 30;\r\n\tconst barWidth = 16;\r\n\r\n\tconst legendData = [\r\n\t\t{\r\n\t\t\tname: t('dashboard.consume_average'),\r\n\t\t\tsymbol: { fill: Colors.primaryDark, type: 'minus' },\r\n\t\t\tlabels: { fill: Colors.primaryDark },\r\n\t\t\tclickable: false,\r\n\t\t},\r\n\t\t...data.items.map(x => ({\r\n\t\t\tname: t(`dashboard.monthly_cost_types.${x.type}` as any),\r\n\t\t\ttype: x.type,\r\n\t\t\tsymbol: {\r\n\t\t\t\tfill: !hiddenData.find(a => a === x.type) ? DASHBOARD_COLORS.monthlyCost[x.type] : Colors.gray17,\r\n\t\t\t},\r\n\t\t\tlabels: { fill: Colors.primaryDark },\r\n\t\t\tclickable: true,\r\n\t\t})),\r\n\t];\r\n\r\n\tlet itemsData = data.items\r\n\t\t.filter(x => !hiddenData.find(h => h === x.type))\r\n\r\n\tif (selectedYear) {\r\n\t\titemsData = itemsData.map(x => {\r\n\t\t\treturn {\r\n\t\t\t\t...x,\r\n\t\t\t\titems: x.items.filter(s => dayjs(s.date).year() === selectedYear)\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\r\n\tconst allItems = Utils.flatten(itemsData.map(x => x.items));\r\n\tconst allDates = allItems\r\n\t\t.map(x => x.date)\r\n\t\t.filter((date, i, self) => self.findIndex(d => d.getTime() === date.getTime()) === i);\r\n\tconst allValues = allItems.map(x => x.value);\r\n\tconst average = allValues.reduce((a, b) => a + b, 0) / allValues.length;\r\n\tconst highestValue = Math.max(...allValues);\r\n\r\n\tconst monthsDiff = allDates?.length ? Utils.getMonthsInDates(allDates).length : 0;\r\n\r\n\tconst chartPadding = { top: 40, left: 25, right: 25, bottom: 40 };\r\n\r\n\tconst onClickLegend = (propsData: any) => {\r\n\t\tconst type = propsData.datum.type;\r\n\t\tif (!type) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (hiddenData.find(x => x === type)) {\r\n\t\t\tsetHiddenData(hiddenData.filter(x => x !== type));\r\n\t\t} else {\r\n\t\t\tsetHiddenData([...hiddenData, type]);\r\n\t\t}\r\n\r\n\t\tsetReRenderKey(new Date().getTime());\r\n\t};\r\n\r\n\tconst setCosts = (year: number | null) => {\r\n\t\tif(year){\r\n\t\t\tconst fixedValues = data.items.length > 0 ? data.items.filter(x => x.type == DashboardMonthlyCostTypeEnum.FIXED_COST)[0].items : [];\r\n\t\t\tconst variableValues = data.items.length > 0 ? data.items.filter(x => x.type == DashboardMonthlyCostTypeEnum.VARIABLE_COST)[0].items : [];\r\n\t\t\tconst fixedCost = fixedValues != null ? fixedValues.filter(x => x.date.getFullYear() == selectedYear).map(x => x.value).sum() : 0;\r\n\t\t\tconst variableCost = variableValues != null ? variableValues.filter(x => x.date.getFullYear() == selectedYear).map(x => x.value).sum() : 0;\r\n\t\t\tsetFixedCostsTotal(fixedCost);\r\n\t\t\tsetVariableCostsTotal(variableCost);\r\n\t\t\tsetCostsTotal(fixedCost+variableCost);\r\n\t\t} else {\r\n\t\t\tsetFixedCostsTotal(data.fixedCostsTotal);\r\n\t\t\tsetVariableCostsTotal(data.variableCostsTotal);\r\n\t\t\tsetCostsTotal(data.total);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

{t('dashboard.monthly_cost_types.FIXED_COST')}

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

{t('dashboard.monthly_cost_types.VARIABLE_COST')}

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{t('dashboard.monthly_cost_total_label')}\r\n\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{/* Average Line */}\r\n\t\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Main bars chart */}\r\n\t\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t\t x.items.length > 1) ? 50 : 350 }}\r\n\t\t\t\t\t\t\tkey={'chart-' + reRenderKey}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{itemsData.map((item, i) => (\r\n\t\t\t\t\t\t\t\t\t null}\r\n\t\t\t\t\t\t\t\t\t\tlabelComponent={}\r\n\t\t\t\t\t\t\t\t\t\tevents={[\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'data',\r\n\t\t\t\t\t\t\t\t\t\t\t\teventHandlers: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: propsData => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst fill = propsData.style && propsData.style.fill;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn fill === DASHBOARD_COLORS.monthlyCost[item.type]\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext: Utils.formatCurrency(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpropsData.datum.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t Utils.capitalize(monthsDiff > 5 ? dayjs(x).locale(locale).format('MMMM')[0] : dayjs(x).locale(locale).format('MMMM'))}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttickLabels: { fill: Colors.black, userSelect: 'none', fontSize: 15 },\r\n\t\t\t\t\t\t\t\t\taxis: { stroke: Colors.gray3 },\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Legends */}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tstyle={{ labels: { fontSize: 15, userSelect: 'none' } }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MonthlyCostChart;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { MonthlyCostDashboardDto, MonthlyCostItemTypeDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport Utils from 'common/services/Utils';\r\nimport dayjs from 'dayjs';\r\nimport Box, { Props as BoxProps } from 'common/components/box/Box';\r\nimport MonthlyCostChart from './MonthlyCostChart';\r\nimport { ReactComponent as ArrowDown } from 'assets/svg/chevron_down.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport Colors from 'styles/export/colors.module.scss'\r\nimport styles from './MonthlyCostChartBox.module.scss';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\n\r\ntype Props = {\r\n\tdata: MonthlyCostDashboardDto | null;\r\n\tisLoading?: boolean;\r\n} & BoxProps;\r\n\r\nconst MonthlyCostChartBox = ({ data, isLoading, ...props }: Props) => {\r\n\tconst [selectedYearIndex, setSelectedYearIndex] = useState(null);\r\n\tconst allYears = Utils.flatten((data?.items || []).map(x => x.items)).map(x =>\r\n\t\tx.date.getFullYear(),\r\n\t);\r\n\tconst yearsOptions = allYears\r\n\t\t.filter((year, i, self) => self.findIndex(d => d === year) === i)\r\n\t\t.sort((a, b) => a - b);\r\n\tconst existsMoreThanOneYear = allYears.every((year, _, arr) => year === arr[0]) === false;\r\n\r\n\tconst selectedYear = selectedYearIndex !== null ? yearsOptions[selectedYearIndex] : null;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (existsMoreThanOneYear) {\r\n\t\t\tconst currYear = dayjs().year();\r\n\t\t\tconst currYearExistIndex = yearsOptions.findIndex(year => year === currYear);\r\n\r\n\t\t\tsetSelectedYearIndex((currYearExistIndex !== null && currYearExistIndex >= 0) ? currYearExistIndex : (yearsOptions.length - 1));\r\n\t\t} else {\r\n\t\t\tsetSelectedYearIndex(null);\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\tif (!data && !isLoading) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst onPreviousYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex > 0) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex - 1);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onNextYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex < yearsOptions.length - 1) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex + 1);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{selectedYear}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t\t: undefined}\r\n\t\t>\r\n\t\t\t{isLoading ?
: data && }\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MonthlyCostChartBox;\r\n","export enum VehicleMaintenanceStates {\r\n PREDICTED = 'PREDICTED',\r\n PERFORM = 'PERFORM',\r\n //OBLIGATORY = 'OBLIGATORY'\r\n}\r\n","import { NextMaintenanceItemDashboardDto, NextMaintenancesDashboardDto } from 'api/dashboard/dtos/NextMaintenancesDashboardDto';\r\nimport { VehicleMaintenanceStates } from 'api/vehicleMaintenances/enums/VehicleMaintenanceStates';\r\nimport Badge, { BadgePreset } from 'common/components/badge/Badge';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { DATE_FORMAT_DEFAUT, DATE_FORMAT_MONTH_YEAR, DATE_TIME_FORMAT_DEFAULT } from 'Config';\r\nimport dayjs from 'dayjs';\r\nimport React, { useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from 'react-router-dom';\r\nimport styles from './NextMaintenances.module.scss';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\n\r\n\r\nfunction getStatePreset(state: VehicleMaintenanceStates): BadgePreset {\r\n\tswitch (state) {\r\n\t\tcase VehicleMaintenanceStates.PREDICTED:\r\n\t\t\treturn 'primaryDark';\r\n\r\n\t\t// case VehicleMaintenanceStates.OBLIGATORY:\r\n\t\t// \treturn 'danger';\r\n\r\n\t\tcase VehicleMaintenanceStates.PERFORM:\r\n\t\t\treturn 'success';\r\n\r\n\t\tdefault:\r\n\t\t\treturn 'primaryDark';\r\n\t}\r\n}\r\n\r\ntype Props = {\r\n\tdata: NextMaintenancesDashboardDto | null;\r\n\tisLoading?: boolean;\r\n};\r\n\r\nconst NextMaintenances = ({ data, isLoading }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst history = useHistory();\r\n\r\n\tconst imageCacheKey = useRef(new Date().getTime());\r\n\t\r\n\tif (!data && !isLoading) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (isLoading) {\r\n\t\treturn
;\r\n\t} else if (!data?.items || data?.items.length === 0) {\r\n\t\treturn
{t('dashboard.no_enough_information')}
;\r\n\t}\r\n\r\n\tconst onPress = (item: NextMaintenanceItemDashboardDto) => {\r\n\t\thistory.push(`/maintenances/details/${item.id}`);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{data?.items.map((item, i) => {\r\n\t\t\t\tconst statePreset = getStatePreset(item.state);\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
onPress(item)}>\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

{item.description}

\r\n\t\t\t\t\t\t\t\t{!item.expectedDate ?\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{t(('maintenances.states.' + item.state) as any)}\r\n\t\t\t\t\t\t\t\t\t\t\t{item.adviseKms && item.adviseDate ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>{': '} {' ' + t('common.or') + ' ' + dayjs(item.adviseDate).format(DATE_FORMAT_MONTH_YEAR)} \r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\titem.adviseKms && !item.adviseDate ? <>{': '} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!item.adviseKms && item.adviseDate ? <>{': ' + dayjs(item.adviseDate).format(DATE_FORMAT_MONTH_YEAR)} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t''}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tpreset={statePreset} />\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t< Badge text={t(('maintenances.states.' + item.state) as any)} preset={statePreset} />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t{item.vehicleRegistrationNumber}\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t{item.expectedDate ?

\r\n\t\t\t\t\t\t\t\t\t{t('common.at')} {item.expectedHour ?\r\n\t\t\t\t\t\t\t\t\t\tdayjs(item.expectedDate).format(DATE_TIME_FORMAT_DEFAULT)\r\n\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\tdayjs(item.expectedDate).format(DATE_FORMAT_DEFAUT)}\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t{t('maintenances.without_programming')}\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default NextMaintenances;\r\n","import React from 'react';\r\nimport NumberFormat, { NumberFormatProps } from 'react-number-format';\r\n\r\nconst DistanceFormat: React.FC = ({ value, ...props }: NumberFormatProps) => {\r\n const data = Number(value);\r\n\r\n return (\r\n data >= 1 ?\r\n \r\n :\r\n props.showLessThan1Km ?\r\n
{'<1 km'}
\r\n :\r\n \r\n\r\n );\r\n};\r\n\r\nexport default DistanceFormat;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { renderToString } from 'react-dom/server';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport { Rect, VictoryAxis, VictoryBar, VictoryChart, VictoryGroup, VictoryLabel, VictoryLegend, VictoryLine } from 'victory';\r\nimport styles from './MonthlyRouteChart.module.scss';\r\nimport Utils from 'common/services/Utils';\r\nimport { DASHBOARD_COLORS, DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport ChartEmptyLabel from 'common/components/charts/ChartEmptyLabel';\r\nimport useElementSize from 'common/hooks/useElementSize';\r\nimport dayjs from 'dayjs';\r\nimport Storage from 'common/services/Storage';\r\nimport { MonthlyRoutesDashboardDto } from 'api/dashboard/dtos/MonthlyRouteDashboardDto';\r\nimport DistanceFormat from 'common/components/distanceFormat/DistanceFormat';\r\n\r\nconst BarLabel = (props: any) => (\r\n\t}\r\n\t\tverticalAnchor=\"middle\"\r\n\t\trenderInPortal={false}\r\n\t/>\r\n);\r\n\r\ntype Props = {\r\n\tdata: MonthlyRoutesDashboardDto | null;\r\n\tselectedYear: number | null;\r\n};\r\n\r\nconst MonthlyRouteChart = ({ data, selectedYear }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst [reRenderKey, setReRenderKey] = useState(new Date().getTime());\r\n\tconst [containerRef, { width, height }] = useElementSize();\r\n\tconst locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n\r\n\tuseEffect(() => {\r\n\t\tsetReRenderKey(new Date().getTime());\r\n\t\t// selectedYear && setCosts(selectedYear);\r\n\t}, [data, selectedYear]);\r\n\r\n\tif (data && !Boolean(data.hasTrackingDeviceId)) {\r\n\t\treturn
{t('vehicles_gps.without_tracking_device_information')}
;\r\n\t}\r\n\r\n\tif (!data?.items || data?.items.length === 0) {\r\n\t\treturn
{t('dashboard.no_enough_information')}
;\r\n\t}\r\n\r\n\tconst viewWidth = 650;\r\n\tconst viewHeight = 170;\r\n\r\n\tconst chartWidth = viewWidth;\r\n\tconst chartHeight = viewHeight - 30;\r\n\tconst barWidth = 16;\r\n\r\n\tconst legendData = [\r\n\t\t{\r\n\t\t\tname: t('dashboard.routes.AVERAGE'),\r\n\t\t\tsymbol: { fill: Colors.black, type: 'minus' },\r\n\t\t\tlabels: { fill: Colors.black },\r\n\t\t\tclickable: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tname: t(`dashboard.routes.KM_TIME` as any),\r\n\t\t\tsymbol: {\r\n\t\t\t\tfill: DASHBOARD_COLORS.monthlyRoute.BAR,\r\n\t\t\t},\r\n\t\t\tlabels: { fill: Colors.black },\r\n\t\t\tclickable: true,\r\n\t\t}\r\n\t];\r\n\r\n\tlet itemsData = data.items;\r\n\r\n\tif (selectedYear) {\r\n\t\titemsData = itemsData.filter(s => dayjs(s.date).year() === selectedYear);\r\n\t}\r\n\r\n\tconst allItems = itemsData;\r\n\tconst allDates = allItems\r\n\t\t.map(x => x.date)\r\n\t\t.filter((date, i, self) => self.findIndex(d => d.getTime() === date.getTime()) === i);\r\n\tconst allValues = allItems.map(x => x.totalKms);\r\n\tconst average = allValues.reduce((a, b) => a + b, 0) / allValues.length;\r\n\tconst highestValue = Math.max(...allValues);\r\n\r\n\tconst monthsDiff = allDates?.length ? Utils.getMonthsInDates(allDates).length : 0;\r\n\r\n\tconst chartPadding = { top: 40, left: 25, right: 25, bottom: 40 };\r\n\r\n\tconst formatTime = (totalMinutes: number) => {\r\n\t\tconst hours = Math.floor(totalMinutes / 60);\r\n\t\tconst minutes = Math.round(totalMinutes - (hours * 60));\r\n\t\treturn `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} h`;\r\n\t}\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

{t('dashboard.routes.KM')}

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

{t('dashboard.routes.TIME')}

\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{formatTime(data.totalMinutes)}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{/* Average Line */}\r\n\t\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Main bars chart */}\r\n\t\t\t\t\t{itemsData.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t null}\r\n\t\t\t\t\t\t\t\t\t\tlabelComponent={}\r\n\t\t\t\t\t\t\t\t\t\tevents={[\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'data',\r\n\t\t\t\t\t\t\t\t\t\t\t\teventHandlers: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter: (props: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: propsData => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst style = propsData.style;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst hours = Math.floor(propsData.datum.totalMinutes / 60);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst minutes = Math.round(propsData.datum.totalMinutes - (hours * 60));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst kms = propsData.datum.totalKms;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn propsData.datum ? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...propsData, style,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext: t('dashboard.routes.KM_TIME_OVER',{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t km: renderToString().replace(/<\\/?span[^>]*>/g,''),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t time: `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} h` }) } : null;},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: 'labels',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmutation: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t Utils.capitalize(monthsDiff > 5 ? dayjs(x).locale(locale).format('MMMM')[0] : dayjs(x).locale(locale).format('MMMM'))}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttickLabels: { fill: Colors.black, userSelect: 'none', fontSize: 15 },\r\n\t\t\t\t\t\t\t\t\taxis: { stroke: Colors.gray3 },\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Legends */}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tstyle={{ labels: { fontSize: 15, userSelect: 'none' } }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MonthlyRouteChart;\r\n","import React, { useEffect, useState } from 'react';\r\nimport dayjs from 'dayjs';\r\nimport Box, { Props as BoxProps } from 'common/components/box/Box';\r\nimport MonthlyRouteChart from './MonthlyRouteChart';\r\nimport { ReactComponent as ArrowDown } from 'assets/svg/chevron_down.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport Colors from 'styles/export/colors.module.scss'\r\nimport styles from './MonthlyRouteChartBox.module.scss';\r\nimport { MonthlyRouteDashboardDto, MonthlyRoutesDashboardDto } from 'api/dashboard/dtos/MonthlyRouteDashboardDto';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ntype Props = {\r\n\tdata: MonthlyRoutesDashboardDto | null;\r\n\tisLoading?: boolean;\r\n} & BoxProps;\r\n\r\nconst MonthlyRouteChartBox = ({ data, isLoading, ...props }: Props) => {\r\n\tconst { t } = useTranslation();\r\n\tconst [selectedYearIndex, setSelectedYearIndex] = useState(null);\r\n\tconst allYears = (data?.items || []).map((x: MonthlyRouteDashboardDto) => x.date.getFullYear());\r\n\r\n\tconst yearsOptions = allYears\r\n\t\t.filter((year, i, self) => self.findIndex(d => d === year) === i)\r\n\t\t.sort((a, b) => a - b);\r\n\r\n\tconst existsMoreThanOneYear = allYears.every((year, _, arr) => year === arr[0]) === false;\r\n\r\n\tconst selectedYear = selectedYearIndex !== null ? yearsOptions[selectedYearIndex] : null;\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif (existsMoreThanOneYear) {\r\n\t\t\tconst currYear = dayjs().year();\r\n\t\t\tconst currYearExistIndex = yearsOptions.findIndex(year => year === currYear);\r\n\r\n\t\t\tsetSelectedYearIndex(currYearExistIndex !== null ? currYearExistIndex : yearsOptions[0]);\r\n\t\t} else {\r\n\t\t\tsetSelectedYearIndex(null);\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\tconst onPreviousYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex > 0) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex - 1);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onNextYear = () => {\r\n\t\tif (selectedYearIndex !== null && selectedYearIndex < yearsOptions.length - 1) {\r\n\t\t\tsetSelectedYearIndex(selectedYearIndex + 1);\r\n\t\t}\r\n\t};\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{selectedYear}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t\t: <>}\r\n\t\t>\r\n\t\t\t{isLoading ?
:}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MonthlyRouteChartBox;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport Box from 'common/components/box/Box';\r\nimport React from 'react';\r\nimport { Col, Grid, Row } from 'react-flexbox-grid';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ConsumesChartBox from '../consumesChart/ConsumesChartBox';\r\nimport ExpensesChart from '../expensesChart/ExpensesChart';\r\nimport MonthlyCostChartBox from '../monthlyCostChart/MonthlyCostChartBox';\r\nimport NextMaintenances from '../nextMaintenances/NextMaintenances';\r\nimport styles from './ChartsBoxes.module.scss';\r\nimport MonthlyRouteChartBox from '../monthlyRouteChart/MonthlyRouteChartBox';\r\nimport { CountersDashboardDto } from 'api/dashboard/dtos/CountersDashboardDto';\r\nimport { NextMaintenancesDashboardDto } from 'api/dashboard/dtos/NextMaintenancesDashboardDto';\r\nimport { MonthlyCostDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport { ConsumesDashboardDto } from 'api/dashboard/dtos/ConsumesDashboardDto';\r\nimport { MonthlyRoutesDashboardDto } from 'api/dashboard/dtos/MonthlyRouteDashboardDto';\r\nimport { ExpensesDashboardDto } from 'api/dashboard/dtos/ExpensesDashboardDto';\r\nimport UsersService from 'api/users/UsersService';\r\n\r\ntype Props = {\r\n counters: CountersDashboardDto | null;\r\n expenses: ExpensesDashboardDto | null;\r\n consumes: ConsumesDashboardDto | null;\r\n nextMaintenances: NextMaintenancesDashboardDto | null;\r\n monthlyCost: MonthlyCostDashboardDto | null;\r\n monthlyRoute: MonthlyRoutesDashboardDto | null;\r\n isLoadingCounters?: boolean;\r\n isLoadingExpenses?: boolean;\r\n isLoadingConsumes?: boolean;\r\n isLoadingNextMaintenances?: boolean;\r\n isLoadingMonthlyCost?: boolean;\r\n isLoadingMonthlyRoute?: boolean;\r\n showMonthlyRoute?: boolean;\r\n}\r\n\r\nconst ChartsBoxes = ({ counters, expenses, consumes, nextMaintenances, monthlyCost, monthlyRoute, isLoadingExpenses, isLoadingConsumes, isLoadingNextMaintenances, isLoadingMonthlyCost, isLoadingMonthlyRoute, showMonthlyRoute }: Props) => {\r\n const { t } = useTranslation();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasGpsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {consumes && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showMonthlyRoute && hasGpsReadPolicy && \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ChartsBoxes;","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport DashboardService from 'api/dashboard/DashboardService';\r\nimport { LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport FiltersButton from 'screens/dashboard/filters/FiltersButton';\r\nimport ChartsBoxes from 'screens/dashboard/chartsBoxes/ChartsBoxes';\r\nimport { FiltersFormModel, TimePeriod, timePeriodToDates } from 'screens/dashboard/filters/FiltersView';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './CarDashboardTab.module.scss';\r\nimport { CountersDashboardDto } from 'api/dashboard/dtos/CountersDashboardDto';\r\nimport { ExpensesDashboardDto } from 'api/dashboard/dtos/ExpensesDashboardDto';\r\nimport { ConsumesDashboardDto } from 'api/dashboard/dtos/ConsumesDashboardDto';\r\nimport { MonthlyCostDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport { NextMaintenancesDashboardDto } from 'api/dashboard/dtos/NextMaintenancesDashboardDto';\r\nimport { MonthlyRoutesDashboardDto } from 'api/dashboard/dtos/MonthlyRouteDashboardDto';\r\n\r\nconst defaultTimePeriod = TimePeriod.CURRENT_MONTH;\r\nconst [defaultDateFrom, defaultDateTo] = timePeriodToDates(defaultTimePeriod);\r\n\r\n\r\ntype Props = {\r\n hasTrackingDeviceId?: boolean;\r\n tourReRender: () => void;\r\n segmentFeatures:string[];\r\n}\r\n\r\nconst CarDashboardTab = ({ hasTrackingDeviceId, tourReRender,segmentFeatures }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n const [counters, setCounters] = useState(null);\r\n const [expenses, setExpenses] = useState(null);\r\n const [consumes, setConsumes] = useState(null);\r\n const [nextMaintenances, setNextMaintenances] = useState(null);\r\n const [monthlyCost, setMonthlyCost] = useState(null);\r\n const [monthlyRoute, setMonthlyRoutes] = useState(null);\r\n const [refresh, setRefresh] = useState(1);\r\n const [filters, setFilters] = useState({\r\n dateFrom: defaultDateFrom,\r\n dateTo: defaultDateTo,\r\n vehicleId,\r\n timePeriod: defaultTimePeriod,\r\n inactives: true\r\n });\r\n\r\n const [isLoadingCounters, setIsLoadingCounters] = useState(false);\r\n const [isLoadingExpenses, setIsLoadingExpenses] = useState(false);\r\n const [isLoadingConsumes, setIsLoadingConsumes] = useState(false);\r\n const [isLoadingNextMaintenances, setIsLoadingNextMaintenances] = useState(false);\r\n const [isLoadingMonthlyCost, setIsLoadingMonthlyCost] = useState(false);\r\n const [isLoadingMonthlyRoute, setIsLoadingMonthlyRoute] = useState(false);\r\n\r\n const getCounters = async () => {\r\n try {\r\n setIsLoadingCounters(true);\r\n const dashboardData = await DashboardService.getCounters({ ...filters, vehicleId: vehicleId });\r\n setCounters(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingCounters(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n const getExpenses = async () => {\r\n try {\r\n setIsLoadingExpenses(true);\r\n const dashboardData = await DashboardService.getExpenses({ ...filters, vehicleId: vehicleId });\r\n setExpenses(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingExpenses(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n const getConsumes = async () => {\r\n try {\r\n setIsLoadingConsumes(true);\r\n const dashboardData = await DashboardService.getConsumes({ ...filters, vehicleId: vehicleId });\r\n setConsumes(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingConsumes(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n const getNextMaintenances = async () => {\r\n try {\r\n setIsLoadingNextMaintenances(true);\r\n const dashboardData = await DashboardService.getNextMaintenances({ ...filters, vehicleId: vehicleId });\r\n setNextMaintenances(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingNextMaintenances(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n const getMonthlyCost = async () => {\r\n try {\r\n setIsLoadingMonthlyCost(true);\r\n // para não mostrar o mês anterior no gráfico\r\n if (filters.dateFrom) {\r\n const newDate = new Date(filters.dateFrom);\r\n const offset = new Date().getTimezoneOffset();\r\n const dateInLocalTime = new Date(newDate.getTime() - (offset * 60000));\r\n\r\n filters.dateFrom = dateInLocalTime;\r\n }\r\n const dashboardData = await DashboardService.getMonthlyCost({ ...filters, vehicleId: vehicleId });\r\n setMonthlyCost(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingMonthlyCost(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n const getMonthlyRoutes = async () => {\r\n try {\r\n setIsLoadingMonthlyRoute(true); \r\n if (hasTrackingDeviceId != null ? Boolean(hasTrackingDeviceId) : false) {\r\n const dashboardData = await DashboardService.getMonthlyRoutes({ ...filters, vehicleId: vehicleId }); \r\n setMonthlyRoutes({ ...dashboardData, hasTrackingDeviceId: hasTrackingDeviceId != null ? Boolean(hasTrackingDeviceId) : null });\r\n } else {\r\n setMonthlyRoutes(null);\r\n }\r\n \r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingMonthlyRoute(false);\r\n tourReRender();\r\n }\r\n };\r\n\r\n \r\n const showField = (feature: string) => {\r\n return (segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n useEffect(() => {\r\n getCounters();\r\n getExpenses();\r\n getConsumes();\r\n getNextMaintenances();\r\n getMonthlyCost();\r\n getMonthlyRoutes();\r\n }, [filters]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CarDashboardTab;","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { ChargesChartSearchCriteria, ChargesSearchCriteria } from './models/ChargesSearchCriteria';\r\nimport { ChargeCounterListDto, ChargeDto, ChartChargeDto } from './models/ChargeDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\n\r\nclass ChargesService {\r\n\r\n public getList(criteria: ChargesSearchCriteria) {\r\n return Http.get>('charges', criteria);\r\n }\r\n\r\n public catalog(criteria: ChargesSearchCriteria) {\r\n return Http.get('charges/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('charges/' + id);\r\n }\r\n \r\n public create(model: ChargeDto, attachment: CustomFile[]) {\r\n return Http.postWithFile('charges', model, attachment);\r\n }\r\n\r\n public update(model: ChargeDto, attachment: CustomFile[]) {\r\n return Http.putWithFile('charges', model, attachment);\r\n }\r\n\r\n public remove(model: ChargeDto) {\r\n return Http.put('charges/deactivate', model);\r\n }\r\n\r\n public getChartCharges(criteria: ChargesChartSearchCriteria) {\r\n return Http.get('charges/chart', criteria);\r\n }\r\n\r\n public getCountersList(criteria: ChargesSearchCriteria) {\r\n return Http.get('charges/counters-list', criteria);\r\n }\r\n}\r\n\r\nexport default new ChargesService();","export default __webpack_public_path__ + \"static/media/mobile_search_black.0949bf01.svg\";","import React, { memo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './InputSearch.module.scss';\r\nimport SearchIcon from 'assets/svg/mobile_search_black.svg';\r\nimport CloseIcon from 'assets/svg/mobile_close.svg';\r\n\r\nexport type Props = {\r\n onChangeValue: (value: string) => void;\r\n onKeyDown?: (event: any) => void;\r\n placeholder: string;\r\n inputContainerClassName?: any,\r\n} & React.DetailedHTMLProps<\r\n React.InputHTMLAttributes,\r\n HTMLInputElement\r\n>;\r\n\r\nconst InputSearch = ({ onChangeValue, onKeyDown, placeholder, inputContainerClassName, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const [textLength, setTextLength] = useState(0);\r\n const inputRef = useRef(null);\r\n\r\n const clearInput = () => {\r\n setTextLength(0);\r\n onChangeValue('');\r\n if (inputRef.current) {\r\n inputRef.current.value = '';\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {\r\n setTextLength(e.currentTarget.value.length);\r\n onChangeValue(e.currentTarget.value);\r\n }}\r\n onKeyUp={(event:any) => {\r\n const keyCode = event.keyCode;\r\n if (keyCode === 46 || keyCode === 8) {\r\n event.target.value = event.target.value.trim();\r\n setTextLength(event.currentTarget.value.length);\r\n onChangeValue(event.currentTarget.value);\r\n }\r\n }}\r\n onKeyDown={ (e: any) => {\r\n if (onKeyDown) {\r\n onKeyDown(e);\r\n }\r\n }}\r\n onBlur={event => {\r\n event.target.value = event.target.value.trim();\r\n setTextLength(event.currentTarget.value.length);\r\n onChangeValue(event.currentTarget.value);\r\n }}\r\n className={`${styles.inputContent} ${props.className || ''}`}\r\n />\r\n {textLength === 0 && }\r\n {textLength !== 0 && }\r\n
\r\n\r\n {textLength === props.maxLength && (\r\n
\r\n {t('common.field_max_length', { value: textLength })}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default memo(InputSearch);\r\n","import React from 'react';\r\n\r\ntype Props = {\r\n item: string\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst RenderSVG: React.FC = ({ item, className }: Props) => {\r\n return (
);\r\n}\r\n\r\nexport default RenderSVG;\r\n","import { Paged } from 'api/common/types/Page';\r\nimport Http from '../../common/services/Http';\r\nimport { GenericTypeDto, GenericTypeIconDto } from './models/GenericTypeDto';\r\nimport { GenericTypeSearchCriteria } from './models/GenericTypeSearchCriteria';\r\nimport { SelectValueGenericTypeDto } from './models/SelectValueGenericTypeDto';\r\n\r\nclass GenericTypesService {\r\n public catalogSupplier() {\r\n return Http.get('genericTypes/catalogsupplier');\r\n }\r\n\r\n public catalogCharge() {\r\n return Http.get('genericTypes/catalogcharge');\r\n }\r\n\r\n public catalogChargeByChargeId(chargeId: string) {\r\n return Http.get('genericTypes/catalogcharge/'+ chargeId);\r\n }\r\n\r\n public catalogChargeBySupplierId(supplierId: string) {\r\n return Http.get('genericTypes/catalogchargebysupplierid/'+ supplierId);\r\n }\r\n\r\n public getList(criteria: GenericTypeSearchCriteria) {\r\n return Http.get>('genericTypes', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('genericTypes/' + id);\r\n }\r\n\r\n public create(model: GenericTypeDto) {\r\n return Http.post('genericTypes', model);\r\n }\r\n\r\n public update(model: GenericTypeDto) {\r\n return Http.put('genericTypes', model);\r\n }\r\n\r\n public remove(model: GenericTypeDto) {\r\n return Http.put('genericTypes/deactivate', model);\r\n }\r\n\r\n public catalogIcons() {\r\n return Http.get('genericTypes/icons-catalog');\r\n }\r\n}\r\n\r\nexport default new GenericTypesService();","import React, { ReactNode } from 'react';\r\nimport Avatar, { AvatarProps } from './Avatar';\r\n\r\ntype Props = {\r\n children: ReactNode | ReactNode[];\r\n hideAvatar?: boolean;\r\n} & AvatarProps;\r\n\r\nconst AvatarWithText = ({ children, hideAvatar = false, ...props }: Props) => {\r\n return (\r\n
\r\n {!hideAvatar && }\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nexport default AvatarWithText;","export enum ChargesStatusColorEnum {\r\n TREATED = '#16CCC3',\r\n NOT_TREATED = '#DC4C64',\r\n REFUSED = '#DC4C4C',\r\n APPROVED = '#1781A1',\r\n WAITING_APPROVAL= '#E2B434'\r\n}\r\n","import React from 'react';\r\nimport {\r\n VerticalTimeline,\r\n VerticalTimelineElement\r\n} from 'react-vertical-timeline-component';\r\n\r\nimport styles from './TimeLine.module.scss'\r\n\r\nimport 'react-vertical-timeline-component/style.min.css';\r\nimport DateFormat from '../dateFormat/dateFormat';\r\nimport { DATE_TIME_FORMAT_DEFAULT } from 'Config';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { useTranslation } from 'react-i18next';\r\nimport AvatarWithText from '../avatar/AvatarWithText';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport { ChargesStatusColorEnum } from 'api/charges/enums/ChargesStatusColorEnum';\r\n\r\nexport interface TimeLineItem {\r\n title?: string | React.ReactElement;\r\n date?: Date;\r\n dateRefund?: Date;\r\n userName?: string;\r\n userPhotoUrl?: string;\r\n description?: string;\r\n status?: string;\r\n situation?: string;\r\n}\r\nexport type Props = {\r\n items?: TimeLineItem[];\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst TimeLine = ({ items }: Props) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n {items && items.length > 0 && items.map((item, i) => {\r\n\r\n return (\r\n \r\n
\r\n \r\n {item.title}\r\n \r\n\r\n \r\n {!Boolean(item.dateRefund) &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {Boolean(item.dateRefund) &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n\r\n
\r\n {item.userName}\r\n
\r\n {item.description &&
\r\n {item.description}\r\n
}\r\n\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default TimeLine;","/* eslint-disable react/display-name */\r\n/* eslint-disable react/prop-types */\r\n\r\nimport React, { memo, useState } from 'react';\r\nimport TextareaAutosize from 'react-autosize-textarea/lib';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './Input.module.scss';\r\n\r\ntype InputPreset = 'default' | 'login';\r\n\r\nexport type Props = {\r\n preset?: InputPreset;\r\n rows?: number | undefined;\r\n} & React.DetailedHTMLProps, HTMLTextAreaElement>;\r\n\r\nconst InputResizable = React.forwardRef(({ preset, rows, onChange, ...props }, ref) => {\r\n const presetClassName = preset ? styles[preset] : styles.default;\r\n\r\n const { t } = useTranslation();\r\n const [textLength, setTextLength] = useState(0);\r\n\r\n return (\r\n
\r\n {\r\n setTextLength(e.currentTarget.value.length)\r\n if (onChange) {\r\n onChange(e as any);\r\n }\r\n }}\r\n rows={rows ?? 1}\r\n />\r\n {textLength === props.maxLength &&
{t('common.field_max_length', { value: textLength })}
}\r\n
\r\n );\r\n});\r\n\r\nexport default memo(InputResizable);\r\n","import React, { useState, useRef } from 'react';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\nimport InputResizable, { Props as InputProps } from './InputResizable';\r\nimport { Item, Menu, useContextMenu, theme } from 'react-contexify';\r\nimport 'react-contexify/dist/ReactContexify.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n id?: string;\r\n name: string;\r\n rules?: Exclude;\r\n contextMenuOptions?: ContextMenuAreaOption[];\r\n} & InputProps;\r\n\r\nexport type ContextMenuAreaOption = {\r\n onClick: (element: HTMLTextAreaElement | undefined) => string;\r\n name: string;\r\n}\r\nconst InputResizableController = ({ form, name, rules,id, contextMenuOptions, ...props }: Props) => {\r\n const [element, setElement] = useState(); \r\n const { show } = useContextMenu({ id: id ?? 'context-area-menu' });\r\n const { t } = useTranslation();\r\n const reference = useRef(null);\r\n\r\n const onRegisterRef = (instance: HTMLTextAreaElement) => {\r\n \r\n if (instance) {\r\n setElement(instance);\r\n }\r\n return instance;\r\n }\r\n \r\n const renderContextMenu = (onChange : any) => {\r\n return \r\n {contextMenuOptions?.map((option, index) => {\r\n return { onChange(option.onClick((reference!= null? reference?.current: undefined) as (HTMLTextAreaElement | undefined)));}}>\r\n
\r\n {t(option.name as any)}\r\n
\r\n
;\r\n })}\r\n
;\r\n }\r\n\r\n return (\r\n {\r\n return ( \r\n <>\r\n { contextMenuOptions && !props.disabled &&\r\n
\r\n { \r\n onChange(e.target.value);\r\n }}\r\n value={value}\r\n />\r\n {renderContextMenu(onChange)}\r\n
} \r\n\r\n { (!contextMenuOptions || props.disabled) && \r\n {\r\n onChange(e.target.value);\r\n }}\r\n value={value}\r\n />\r\n }\r\n \r\n );\r\n }}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || ''}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default InputResizableController;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport ChargesService from 'api/charges/ChargesService';\r\nimport { ChargeDto } from 'api/charges/models/ChargeDto';\r\nimport GenericTypesService from 'api/genericTypes/GenericTypesService';\r\nimport { SelectValueGenericTypeDto } from 'api/genericTypes/models/SelectValueGenericTypeDto';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport UsersService from 'api/users/UsersService';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Box from 'common/components/box/Box';\r\nimport Button from 'common/components/button/Button';\r\nimport CheckBox from 'common/components/checkBox/CheckBox';\r\nimport DateTimePickerController from 'common/components/dateTimePicker/DateTimePickerController';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport Label from 'common/components/label/Label';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport Select from 'common/components/select/Select';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_INPUT_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, FUELS, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './ChargeScreen.module.scss';\r\nimport TimeLine, { TimeLineItem } from 'common/components/timeLine/TimeLine';\r\nimport InputResizableController from 'common/components/input/InputResizableController';\r\nimport { ChargesStatusColorEnum } from 'api/charges/enums/ChargesStatusColorEnum';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport InputInfoWarning from 'common/components/inputInfoWarning/InputInfoWarning';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\n\r\nexport enum SituationType {\r\n TREATED = 'TREATED',\r\n NOT_TREATED = 'NOT_TREATED',\r\n}\r\n\r\nexport enum RequestStatusType {\r\n APPROVED = 'APPROVED',\r\n REFUSED = 'REFUSED'\r\n}\r\n\r\n\r\nexport type Props = {\r\n isVehicle?: boolean;\r\n isDriver?: boolean;\r\n onBackList: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ChargeScreen = ({ isVehicle, isDriver, onBackList, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { vehicleId, driverId, itemType, itemId, tabId, type } = useParams<{ vehicleId: string, driverId: string, itemType: string, itemId: string, tabId: string, type: string }>();\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [charge, setCharge] = useState(null);\r\n\r\n const [vehicleOptions, setVehicleOptions] = useState([]);\r\n const [typeOptions, setTypeOptions] = useState([]);\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n const [responsibleOptions, setResponsibleOptions] = useState([]);\r\n const [selectecType, setSelectecType] = useState();\r\n const [selectecTypeName, setSelectecTypeName] = useState(null);\r\n const [selectedRefundTreated, setSelectedRefundTreated] = useState(null);\r\n const [selectedRequestRefund, setSelectedRequestRefund] = useState(false);\r\n const [fuelOptions, setFuelOptions] = useState([]);\r\n const [reRender, setReRender] = useState(0);\r\n\r\n\r\n\r\n const [requiredFields, setRequiredFields] = useState([]);\r\n const [displayFields, setDisplayFields] = useState([]);\r\n const [vehicle, setVehicle] = useState(undefined);\r\n const [inputKmsBelowCurrentVehicleKms, setInputKmsBelowCurrentVehicleKms] = useState(false);\r\n const [currentKms, setCurrentKms] = useState(null);\r\n\r\n\r\n const demandStatusOptions: SelectValueLabel[] = [\r\n { value: RequestStatusType.APPROVED, label: t(('charges.request_status_type.' + RequestStatusType.APPROVED) as any) },\r\n { value: RequestStatusType.REFUSED, label: t(('charges.request_status_type.' + RequestStatusType.REFUSED) as any) }\r\n ];\r\n\r\n const [blockRefundTreated, setBlockRefundTreated] = useState(false);\r\n\r\n const [savedFiles, setSavedFiles] = useState([]);\r\n\r\n const form = useForm({ shouldUnregister: false, defaultValues: {} });\r\n const { handleSubmit, getValues, setValue, control, errors, reset } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasChargesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CHARGES_WRITE']);\r\n const hasWriteRefundStatusPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_REFUND_STATUS_WRITE']);\r\n const hasWriteRefundSituationPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_REFUND_SITUATION_WRITE']);\r\n const hasReadRefundPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_REFUND_READ']);\r\n const hasReadGPSPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n const [refundHistory, setRefundHistory] = useState([]);\r\n const [refreshKey, setRefreshKey] = useState(new Date().getTime());\r\n\r\n const refresh = () => {\r\n setRefreshKey(new Date().getTime());\r\n }\r\n\r\n const getData = async () => {\r\n\r\n setValue('attachmentsToRemove', []);\r\n try {\r\n Loading.show();\r\n\r\n const types1 = await (itemId ? GenericTypesService.catalogChargeByChargeId(itemId) : GenericTypesService.catalogCharge());\r\n const types2 = types1.map(x => ({ ...x, name: x.label, label: x.isSystem ? t(`common.generic_types.${x.label}` as any) : x.label }));\r\n const types = Utils.sortAlphabetically(types2);\r\n setTypeOptions(types);\r\n\r\n const responsables = await UsersService.getAllForCompany();\r\n setResponsibleOptions((responsables || []).map((x: UsersSelectItemDto) => ({ value: x.id || '', label: x.realName || '' })));\r\n\r\n if (Utils.isStringNullOrEmpty(vehicleId) && !itemId) {\r\n const vehicles = await VehiclesService.catalog();\r\n setVehicleOptions(vehicles);\r\n }\r\n\r\n let vehicleIdVerified = vehicleId;\r\n if (itemId) {\r\n const result = await ChargesService.getById(itemId);\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get the charge with id: ${itemId}`);\r\n history.goBack();\r\n }\r\n\r\n const vehicles = await VehiclesService.catalog(result.vehicleId ?? null);\r\n setVehicleOptions(vehicles);\r\n\r\n vehicleIdVerified = !vehicleIdVerified ? (result.vehicleId ?? '') : vehicleIdVerified;\r\n setValues(result, types);\r\n\r\n getVehicle((result.vehicleId ?? ''), result);\r\n\r\n } else {\r\n setValue('date', new Date());\r\n\r\n if (!Utils.isStringNullOrEmpty(vehicleIdVerified)) {\r\n getVehicle(vehicleId);\r\n }\r\n }\r\n\r\n\r\n refresh();\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get information to create charge`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const setValues = (values: ChargeDto, types: SelectValueGenericTypeDto[]) => {\r\n const refundHistories = values.refundHistory.map(x => ({\r\n ...x,\r\n title: x.status && !x.situation ?\r\n <> {t(('charges.request_status_type.' + x.status) as any)} \r\n :\r\n x.situation ?\r\n <> {t(('charges.situations.' + x.situation) as any)} : '',\r\n date: x.updatedDate ?? x.createdDate,\r\n dateRefund: x.dateRefundTreated,\r\n userName: x.statusUserName ?? x.userCreatedHistoryName,\r\n description: x.observations,\r\n status: x.status,\r\n situation: x.situation\r\n }));\r\n values.refund = refundHistories && refundHistories.length ? refundHistories[0] : undefined;\r\n values.paymentDate = values.paymentDate ? new Date(values.paymentDate) : undefined;\r\n\r\n reset({ ...values, date: new Date(values.date) });\r\n setCharge(values);\r\n\r\n getSupplierByType(values.typeId);\r\n setSelectedRequestRefund(values.requestRefund);\r\n\r\n const type = types.find(x => x.value == values.typeId);\r\n\r\n setRequiredFields(type ? (type.requiredFieldsList ?? []) : [])\r\n setDisplayFields(type ? (type.displayFieldsList ?? []) : [])\r\n\r\n setBlockRefundTreated(!Utils.isStringNullOrEmpty(values.fuelCard ?? ''));\r\n\r\n setValuesFiles(values.attachments);\r\n\r\n setSelectecTypeName(type?.name ?? null);\r\n\r\n\r\n setSelectedRefundTreated(values.refund?.situation == null ? null\r\n : (values.refund?.situation == SituationType.TREATED) ? true : false);\r\n\r\n setRefundHistory(refundHistories);\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (vehicle?.segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n const onSubmit = async (form: ChargeDto) => {\r\n try {\r\n form.vehicleId = Utils.isStringNullOrEmpty(vehicleId) ? form.vehicleId : vehicleId;\r\n\r\n if (form.refund && charge?.refund) {\r\n if (form.refund.status == charge?.refund.status &&\r\n form.refund.statusUserId == charge?.refund.statusUserId &&\r\n form.refund.situation == charge?.refund.situation &&\r\n form.refund.dateRefundTreated == charge?.refund.dateRefundTreated\r\n ) {\r\n form.refund = undefined;\r\n }\r\n else if (form.refund.status != charge?.refund.status && form.refund.situation == charge?.refund.situation) {\r\n form.refund.situation = undefined;\r\n form.refund.dateRefundTreated = undefined;\r\n }\r\n } else if (!form.refund?.status && !form.refund?.situation) {\r\n form.refund = undefined;\r\n }\r\n\r\n Loading.show();\r\n\r\n prepareFilesToSubmit();\r\n\r\n if (form.id) {\r\n await ChargesService.update(form, form.attachments ? form.attachments : [])\r\n } else {\r\n itemId = await ChargesService.create(form, form.attachments ? form.attachments : [])\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n\r\n getData();\r\n\r\n onBackList && onBackList();\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't update the charge with id: ${form.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: ChargeDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await ChargesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n\r\n onBackList && onBackList();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const getSupplierByType = async (typeId: string) => {\r\n try {\r\n Loading.show();\r\n let options: SelectValueLabel[] = [];\r\n if (typeId) {\r\n const suppliers = await SuppliersService.catalog({ typeId: typeId } as CatalogSupplierSearchCriteria);\r\n options = (suppliers || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' }));\r\n }\r\n\r\n if (getValues('supplierId') && !options.find(x => x.value === getValues('supplierId'))) {\r\n if (Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details') {\r\n options.push({ value: getValues('supplierId') ?? '', label: getValues('supplierName') ?? '' })\r\n } else {\r\n setValue('supplierId', null);\r\n }\r\n }\r\n\r\n setSupplierOptions(options);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get supplier by type`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(`/charges/${typeUrl}/${id}`);\r\n } else {\r\n history.push(`/charges`);\r\n }\r\n }\r\n\r\n const onSelectRefundTreated = (mode: boolean, typeSituation?: SituationType) => {\r\n setSelectedRefundTreated(selectedRefundTreated != null && mode == selectedRefundTreated ? null : mode);\r\n\r\n setValue('refund.situation', selectedRefundTreated != null && mode == selectedRefundTreated ? null : typeSituation);\r\n setValue('refund.dateRefundTreated', (!mode) || (selectedRefundTreated != null && mode == selectedRefundTreated) ? null : new Date());\r\n }\r\n\r\n const onchangeRequestRefund = (mode: boolean) => {\r\n setSelectedRequestRefund(mode);\r\n setSelectedRefundTreated(null);\r\n setValue('refundTreated', selectedRefundTreated);\r\n setValue('dateRefundTreated', mode ? new Date() : null);\r\n }\r\n\r\n const getFuelCard = async (id: string) => {\r\n try {\r\n const result = await VehiclesService.getById(id);\r\n let fuelCard = null;\r\n if (result) {\r\n fuelCard = result.fuelCard;\r\n setValue('supplierId', result.fuelCardSupplierId);\r\n }\r\n setValue('fuelCard', fuelCard ?? '');\r\n setBlockRefundTreated(!!fuelCard ? true : false);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCE_CONTRACTS, `Couldn't get information to use contract associate`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const changeFuelCard = () => {\r\n const fuelCardAux = getValues('fuelCard');\r\n if (fuelCardAux != null && fuelCardAux != '') {\r\n setSelectedRequestRefund(false);\r\n onSelectRefundTreated(false);\r\n setValue('requestRefund', false);\r\n setBlockRefundTreated(true);\r\n } else {\r\n setBlockRefundTreated(false);\r\n }\r\n }\r\n\r\n const changeType = (data: SelectValueGenericTypeDto) => {\r\n form.clearErrors();\r\n setValue('typeId', data ? data.value : null);\r\n setSelectecTypeName(data ? data.name : null);\r\n\r\n setSelectecType(data);\r\n setRequiredFields(data ? (data.requiredFieldsList ?? []) : [])\r\n setDisplayFields(data ? (data.displayFieldsList ?? []) : [])\r\n\r\n // current kms from tracking\r\n getGpsKms();\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n const changeVehicle = (data: SelectValueLabel) => {\r\n const vId = data ? data.value : null;\r\n setValue('vehicleId', vId);\r\n getVehicle(vId);\r\n }\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFiles(savedFiles);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n setValuesFiles(getValues('attachments')?.filter(x => !x.id));\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setValue('attachments', files);\r\n setSavedFiles(files?.filter(x => x.id));\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (vehicle && ((!!type && type !== 'details') || (!!itemType && itemType !== 'details'))) {\r\n // current kms from tracking\r\n getGpsKms();\r\n }\r\n }, [vehicle, type, itemType]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (shouldDisplay('CARD')) {\r\n vehicleId && getFuelCard(vehicleId);\r\n } else {\r\n setValue('fuelCard', null);\r\n setBlockRefundTreated(false);\r\n }\r\n\r\n if (shouldDisplay('SUPPLIER') && selectecType) {\r\n getSupplierByType(selectecType?.value);\r\n } else {\r\n setValue('supplierId', null);\r\n }\r\n }, [selectecType]);\r\n\r\n useEffect(() => {\r\n if (vehicle?.segmentFeatures && !showField('FUEL')) {\r\n setTypeOptions(typeOptions.filter(x => x.name != 'FUEL'));\r\n }\r\n }, [vehicle]);\r\n\r\n const refundApproved = form.getValues('refund.status') == RequestStatusType.APPROVED;\r\n\r\n const isRequired = (field: string) => {\r\n return requiredFields.includes(field);\r\n }\r\n\r\n const shouldDisplay = (field: string) => {\r\n return displayFields.includes(field);\r\n }\r\n\r\n const getVehicle = async (id?: string | null, chargeAux?: ChargeDto) => {\r\n try {\r\n const _vehicle = id ? await VehiclesService.getById(id) : undefined\r\n\r\n setVehicle(_vehicle);\r\n\r\n if (_vehicle){\r\n let aux = _vehicle?.vehicleFuels?.map(x => {\r\n return {\r\n value: x.fuelId,\r\n label: !!x.fuelName ? t(('vehicle.fuels.' + x.fuelName) as any) : '',\r\n fullLabel: (x.fuelName ?? ''),\r\n }\r\n }) ?? [];\r\n\r\n if (chargeAux && !!chargeAux.fuelId && !aux.find(x => x.value == chargeAux.fuelId)) {\r\n aux.push({ value: chargeAux.fuelId, fullLabel: (chargeAux.fuelName ?? ''), label: !!chargeAux.fuelName ? t(('vehicle.fuels.' + chargeAux.fuelName) as any) : '' });\r\n aux = Utils.sortAlphabetically(aux);\r\n }\r\n\r\n setFuelOptions(aux);\r\n\r\n if (aux.length == 1) {\r\n form.setValue('fuelId', aux[0].value);\r\n }\r\n }\r\n\r\n if (itemId && _vehicle && (form.watch('kilometers') ?? 0) < (_vehicle?.currentKilometers ?? 0)) {\r\n setInputKmsBelowCurrentVehicleKms(true);\r\n } else {\r\n setInputKmsBelowCurrentVehicleKms(false);\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get vehicle data`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getGpsKms = async () => {\r\n if (vehicle && vehicle.id && vehicle.companyTrackingProvider && vehicle?.companyTrackingProvider !== TrackingProvider.NONE && vehicle.trackingDeviceId) {\r\n try {\r\n const position = await TrackingService.getPosition(vehicle.id);\r\n setCurrentKms(position.km ?? null);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get vehicle gps kms`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n const compareKms = () => {\r\n if (vehicle && (form.watch('kilometers') ?? 0) < (vehicle?.currentKilometers ?? 0)) {\r\n setInputKmsBelowCurrentVehicleKms(true);\r\n return;\r\n }\r\n setInputKmsBelowCurrentVehicleKms(false);\r\n }\r\n\r\n const renderBody = () => {\r\n return (\r\n <>\r\n \r\n {(refundApproved && Boolean(charge)) &&\r\n
\r\n {t('charges.charge_has_refund_approved')}\r\n
}\r\n
\r\n \r\n {!isVehicle &&\r\n \r\n \r\n \r\n {\r\n changeVehicle(data);\r\n }} />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {\r\n setValue('date', date);\r\n setCharge(charge ? { ...charge, date: date } : null);\r\n }}\r\n selected={charge ? moment(charge.date).toDate() : null}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n customInput={} />}\r\n name=\"date\"\r\n autoComplete='off'\r\n disabled={Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details' || (refundApproved && Boolean(charge))}\r\n rules={{ required: true }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.value ?? null);\r\n changeType(data ?? null);\r\n }}\r\n ref={ref}\r\n value={typeOptions.find(x => x.value === value) ? { label: typeOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"typeId\"\r\n defaultValue={getValues('typeId')}\r\n rules={{ required: true }} />\r\n \r\n \r\n \r\n\r\n {shouldDisplay('FUEL') && \r\n \r\n \r\n {\r\n setReRender(reRender + 1);\r\n }}\r\n />\r\n {isRequired('fuel') && }\r\n \r\n }\r\n\r\n\r\n {shouldDisplay('SUPPLIER') && \r\n \r\n \r\n \r\n {isRequired('SUPPLIER') && }\r\n \r\n }\r\n {shouldDisplay('CARD') && \r\n \r\n \r\n \r\n {isRequired('CARD') && }\r\n \r\n }\r\n {shouldDisplay('DESCRIPTION') && \r\n \r\n \r\n \r\n {isRequired('DESCRIPTION') && }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {selectedRequestRefund && }\r\n \r\n \r\n {shouldDisplay('COST') && <>\r\n \r\n \r\n \r\n \r\n {isRequired('COST') && }\r\n\r\n
\r\n {\r\n return (\r\n {\r\n setValue('requestRefund', e.target.checked);\r\n onchangeRequestRefund(e.target.checked);\r\n }}\r\n label={t('charges.request_refund')}\r\n checked={value ? true : false}\r\n disabled={(Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details') || blockRefundTreated || refundHistory.length > 0}\r\n />\r\n );\r\n }}\r\n defaultValue={form.getValues('requestRefund') ? true : false} />\r\n
\r\n {(blockRefundTreated || ((form.getValues('fuelCard') ?? '').length > 0)) && }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {shouldDisplay('QTY') && \r\n \r\n \r\n x.value == form.getValues(`fuelId`))?.fullLabel == FUELS.ELECTRIC ? 'common.kwh' : 'common.lt') as any)}\r\n placeholder={t((fuelOptions.find(x => x.value == form.getValues(`fuelId`))?.fullLabel == FUELS.ELECTRIC ? 'common.kwh' : 'common.liters') as any)}\r\n name=\"liters\"\r\n form={form}\r\n disabled={Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details' || (refundApproved && Boolean(charge))}\r\n format=\"money\"\r\n rules={{ required: isRequired('QTY') }} />\r\n {isRequired('QTY') && }\r\n \r\n }\r\n {shouldDisplay('KMS') && showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n compareKms()} />\r\n {isRequired('KMS') && showField(SEGMENT_FEATURES.KM) && }\r\n {vehicle && ((type !== 'details' && !isVehicle && getValues('vehicleId')) || (itemType !== 'details' && isVehicle)) && }\r\n {hasReadGPSPolicy && vehicle && currentKms != null && ((type !== 'details' && !isVehicle && getValues('vehicleId')) || (itemType !== 'details' && isVehicle)) && }\r\n \r\n }\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {t('common.add_new_file')}}\r\n smallButtonAdd={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n const renderButtons = () => {\r\n const showButtonBasedOnPolicy = (Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details') && hasChargesWritePolicy;\r\n const showEditOrRemoveButton = (Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details') && !refundApproved && hasChargesWritePolicy && !(charge?.vehicleId && !charge?.vehicleActive) && charge?.active;\r\n\r\n return (\r\n <>\r\n
\r\n {\r\n if (!!charge) { reset(charge); }\r\n (isVehicle || isDriver) ? onBackList() : history.goBack()\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {showEditOrRemoveButton &&\r\n showRemoveItemDialog({ id: charge?.id } as ChargeDto)} />\r\n }\r\n {showEditOrRemoveButton &&\r\n {\r\n if (Utils.isStringNullOrEmpty(tabId)) {\r\n history.push(`/charges/edit/${itemId}`);\r\n } else {\r\n history.push(`/${isDriver ? 'drivers' : 'vehicles'}/details/${isDriver ? driverId : vehicleId}/${tabId}/edit/${itemId}`);\r\n }\r\n }}\r\n />}\r\n {showButtonBasedOnPolicy &&\r\n }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />\r\n
\r\n \r\n );\r\n };\r\n\r\n const renderSideInfo = () => {\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n\r\n {refundHistory.length > 0 && <>\r\n
\r\n \r\n
\r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.value);\r\n }}\r\n ref={ref}\r\n value={demandStatusOptions.find(x => x.value === value) ? { label: demandStatusOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"refund.status\"\r\n defaultValue={getValues('refund.status')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {refundApproved &&\r\n <>\r\n \r\n \r\n \r\n {\r\n return (\r\n
\r\n
(hasWriteRefundSituationPolicy && (Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details')) ? onSelectRefundTreated(true, SituationType.TREATED) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t(('charges.situations.' + SituationType.TREATED) as any)}\r\n
\r\n
\r\n
\r\n
(hasWriteRefundSituationPolicy && (Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details')) ? onSelectRefundTreated(false, SituationType.NOT_TREATED) : null} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t(('charges.situations.' + SituationType.NOT_TREATED) as any)}\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }}\r\n control={control}\r\n name=\"refund.situation\"\r\n defaultValue={getValues('refund.situation')} />\r\n
\r\n \r\n \r\n {selectedRefundTreated == true && \r\n \r\n {\r\n setValue('refund.dateRefundTreated', date);\r\n }}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n customInput={} />}\r\n name=\"refund.dateRefundTreated\"\r\n autoComplete='off'\r\n disabled={!hasWriteRefundSituationPolicy || (Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details')}\r\n rules={{ required: true }}\r\n />\r\n \r\n }\r\n \r\n \r\n }\r\n {!!form.watch('refund.status') && \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n {(isVehicle || isDriver) &&\r\n
\r\n \r\n \r\n
\r\n
\r\n {\r\n if (!!charge) { reset(charge); }\r\n onBackList()\r\n }} /> {t('charges.title')}\r\n
\r\n
\r\n {renderBody()}\r\n
\r\n
\r\n \r\n {renderButtons()}\r\n \r\n \r\n {!blockRefundTreated && selectedRequestRefund && hasReadRefundPolicy &&\r\n \r\n {renderSideInfo()}\r\n \r\n }\r\n
\r\n
\r\n\r\n }\r\n\r\n {(!isVehicle && !isDriver) &&\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n {type === 'new' &&\r\n <>\r\n navigateTo()} /> {t('charges.new')}\r\n \r\n }\r\n {type == 'edit' &&\r\n <>\r\n navigateTo()} /> {t('charges.edit')}\r\n }\r\n {type == 'details' &&\r\n <>\r\n navigateTo()} /> {t('charges.details')}\r\n }\r\n\r\n {(Boolean(charge) && !charge?.active) &&\r\n {' - ' + t('charges.charge_deleted')}\r\n }\r\n
\r\n\r\n\r\n {renderBody()}\r\n \r\n\r\n {!blockRefundTreated && selectedRequestRefund && \r\n {renderSideInfo()}\r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n {renderButtons()}\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default ChargeScreen;","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ChargeFiltersScreen.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport VehiclesService from '../../../api/vehicles/VehiclesService';\r\nimport GenericTypesService from '../../../api/genericTypes/GenericTypesService';\r\nimport SuppliersService from '../../../api/suppliers/SuppliersService';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport Utils from 'common/services/Utils';\r\nimport { useParams } from 'react-router-dom';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport moment from 'moment';\r\nimport { SituationType } from 'screens/vehicle/components/carChargeTab/components/ChargeScreen';\r\nimport { ChargesStatusColorEnum } from 'api/charges/enums/ChargesStatusColorEnum';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport Loading from 'common/services/Loading';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\n\r\nexport interface Filters {\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n vehicleId?: string;\r\n vehicleName?: string;\r\n typeId?: string;\r\n typeName?: string;\r\n type?: string;\r\n supplierId?: string;\r\n supplierName?: string;\r\n responsibleId?: string;\r\n responsibleName?: string;\r\n cost?: number[];\r\n refundSituation?: string;\r\n vehiclesInactive?: boolean;\r\n page?: number;\r\n fuelId?: string;\r\n fuelName?: string;\r\n}\r\n\r\ntype Props = {\r\n isVehicle?: boolean;\r\n isDriver?: boolean;\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst ChargeFiltersScreen: React.FC = ({ isVehicle, isDriver, filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const { driverId } = useParams<{ driverId: string }>();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { setValue, watch, getValues, control } = form;\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n const [typesOptions, setTypes] = useState([]);\r\n const [suppliersOptions, setSuppliers] = useState([]);\r\n const [responsiblesOptions, setResponsibles] = useState([]);\r\n const [selectedRefundTreated, setSelectedRefundTreated] = useState(undefined);\r\n const [reRender, setReRender] = useState(0);\r\n const [fuelsOptions, setFuels] = useState([]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const [vehiclesOptions, typesOptions, suppliersOptions, responsiblesOptions, fuels] = await Promise.all([\r\n VehiclesService.catalogByCharges(),\r\n GenericTypesService.catalogCharge(),\r\n SuppliersService.catalog({ referencedAtCharges: true }),\r\n UsersService.getAllForCompany(),\r\n VehiclesService.getFuelList(),\r\n ]);\r\n setVehicles(vehiclesOptions);\r\n\r\n const types2 = typesOptions.map(x => ({ ...x, name: x.label, label: x.isSystem ? t(`common.generic_types.${x.label}` as any) : x.label }));\r\n const types = Utils.sortAlphabetically(types2);\r\n setTypes(types);\r\n\r\n setSuppliers(suppliersOptions);\r\n setResponsibles((responsiblesOptions || []).map((x: UsersSelectItemDto) => ({ value: x.id || '', label: x.realName || '' })));\r\n\r\n setFuels(Utils.sortAlphabetically(fuels.map(x => ({ value: x.value, label: (t(('vehicle.fuels.' + x.label) as any)), fullLabel: x.label }))));\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (form.getValues('refundSituation')) {\r\n setSelectedRefundTreated(form.getValues('refundSituation') == SituationType.TREATED);\r\n }\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n startDate: undefined,\r\n endDate: undefined,\r\n vehicleId: undefined,\r\n typeId: undefined,\r\n supplierId: undefined,\r\n responsibleId: isDriver && !Utils.isStringNullOrEmpty(driverId) ? driverId : undefined,\r\n cost: undefined,\r\n vehicleName: undefined,\r\n typeName: undefined,\r\n type: undefined,\r\n supplierName: undefined,\r\n responsibleName: undefined,\r\n refundSituation: undefined,\r\n vehiclesInactive: false,\r\n fuelId: undefined\r\n });\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (filters: Filters) => {\r\n onFilter({ ...filters, responsibleId: isDriver && !Utils.isStringNullOrEmpty(driverId) ? driverId : filters.responsibleId });\r\n }\r\n\r\n const onInputChange = () => {\r\n if (getValues('type') != GenericType.FUEL) {\r\n setValue('fuelId', undefined);\r\n }\r\n onChange(getValues());\r\n\r\n setReRender(reRender + 1);\r\n }\r\n\r\n const getVal = (arr: any[] | undefined, index: number): any | undefined => {\r\n return arr && arr.length > index ? arr[index] : undefined;\r\n }\r\n\r\n\r\n const onSelectRefundTreated = (mode: boolean, type?: SituationType) => {\r\n const aux = selectedRefundTreated === mode ? undefined : mode;\r\n setSelectedRefundTreated(aux);\r\n setValue('refundSituation', aux === undefined ? undefined : type);\r\n onInputChange();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getValues('startDate')}\r\n defaultEndValue={getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n {!isVehicle && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('vehicleName', vehiclesOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ? { label: vehiclesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n const _type = typesOptions.find(x => x.value == data?.value);\r\n setValue('type', _type?.fullLabel ?? null);\r\n setValue('typeName', _type?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={typesOptions.find(x => x.value === value) ? { label: typesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"typeId\"\r\n defaultValue={getValues('typeId')} />\r\n \r\n \r\n {getValues('type') == GenericType.FUEL && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('fuelName', fuelsOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={fuelsOptions.find(x => x.value === value) ? { label: fuelsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"fuelId\"\r\n defaultValue={getValues('fuelId')} />\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('supplierName', suppliersOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={suppliersOptions.find(x => x.value === value) ? { label: suppliersOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"supplierId\"\r\n defaultValue={getValues('supplierId')} />\r\n \r\n \r\n {!isDriver && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('responsibleName', responsiblesOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={responsiblesOptions.find(x => x.value === value) ? { label: responsiblesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"responsibleId\"\r\n defaultValue={getValues('responsibleId')} />\r\n \r\n }\r\n \r\n \r\n \r\n
\r\n
onSelectRefundTreated(true, SituationType.TREATED)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t(('charges.situations.' + SituationType.TREATED) as any)}\r\n
\r\n
\r\n
\r\n
onSelectRefundTreated(false, SituationType.NOT_TREATED)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t(('charges.situations.' + SituationType.NOT_TREATED) as any)}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {!isVehicle && \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {\r\n const range = [];\r\n range.push(startValue ? Number(startValue) : undefined);\r\n range.push(endValue ? Number(endValue) : undefined);\r\n setValue('cost', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('cost'), 0)}\r\n defaultEndValue={getVal(getValues('cost'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(ChargeFiltersScreen);","export default __webpack_public_path__ + \"static/media/file-arrow-up-solid.ea380b44.svg\";","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport styles from './ListChargesScreen.module.scss';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport ChargesService from 'api/charges/ChargesService';\r\nimport { ChargeCounterListDto, ChargeDto } from 'api/charges/models/ChargeDto';\r\nimport { ChargesSearchCriteria } from 'api/charges/models/ChargesSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport RenderSVG from '../../common/components/renderSVG/RenderSVG';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ChargeFiltersScreen, { Filters } from './components/ChargeFiltersScreen';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { ChargesStatusColorEnum } from 'api/charges/enums/ChargesStatusColorEnum';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport CoinsIcon from 'assets/svg/coins.svg';\r\nimport MediaIcon from 'assets/svg/media.svg';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport ImportIcon from 'assets/svg/file-arrow-up-solid.svg';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\nimport { RequestStatusType } from 'screens/vehicle/components/carChargeTab/components/ChargeScreen';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\n\r\n\r\nexport type Props = {\r\n isVehicle?: boolean;\r\n isDriver?: boolean;\r\n editable: boolean;\r\n onClickItem: (item: ChargeDto, isDetails: boolean) => void;\r\n createNewCharge?: () => void;\r\n criteriaProp?: ChargesSearchCriteria;\r\n onDeleteFromList?: () => void;\r\n tourReRender?: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ListChargesScreen = ({ onClickItem, createNewCharge, isVehicle, isDriver, criteriaProp, onDeleteFromList, editable, tourReRender, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const { driverId, vehicleId, month } = useParams<{ driverId: string, vehicleId: string, month: string }>();\r\n\r\n const [chargePage, setChargePage] = useState | null>(null);\r\n\r\n const [counters, setCounters] = useState();\r\n\r\n const [criteria, setCriteria] = useState(!criteriaProp ? {\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: isVehicle ? vehicleId : undefined,\r\n responsibleId: isDriver ? driverId : undefined,\r\n orderColumn: 'c.date',\r\n orderBy: 'desc',\r\n startDate: month ? new Date(month) : undefined,\r\n endDate: month ? new Date(new Date(new Date(new Date(month).setMonth(new Date(month).getMonth() + 1)).setUTCHours(0)).setUTCSeconds(-1)) : undefined,\r\n vehiclesInactive: true\r\n } : criteriaProp);\r\n\r\n const [filters, setFilters] = useState(month ? { startDate: criteria.startDate, endDate: criteria.endDate, vehiclesInactive: true } : { vehiclesInactive: true });\r\n const [filtersTotal, setFiltersTotal] = useState(month ? 1 : 0);\r\n const [vehicleSegmentFeatures,setVehicleSegmentFeatures] = useState([])\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasImportChargesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_IMPORT_EXPENSES_WRITE']);\r\n const hasChargesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CHARGES_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n let countersDB = null;\r\n countersDB = await ChargesService.getCountersList(criteria);\r\n const [charges,_vehicleSegmentFeatures] = await Promise.all([\r\n ChargesService.getList(criteria),\r\n criteria.vehicleId ? VehiclesService.getVehicleSegmentFeatures(criteria.vehicleId) : null\r\n ]);\r\n setChargePage(charges);\r\n setVehicleSegmentFeatures(_vehicleSegmentFeatures ?? [])\r\n\r\n if (countersDB) {\r\n setCounters(countersDB);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get charges list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n tourReRender && tourReRender();\r\n }\r\n };\r\n\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const showRemoveItemDialog = (item: ChargeDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (vehicleSegmentFeatures.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n const renderTableActionCell = (\r\n row: ChargeDto,\r\n ) => {\r\n const urlDetails = (isVehicle || isDriver) ? `/${isDriver ? 'drivers' : 'vehicles'}/details/${isDriver ? driverId : vehicleId}/costs/details/${row.id}` : `charges/details/${row.id}`;\r\n const urlEdit = (isVehicle || isDriver) ? `/${isDriver ? 'drivers' : 'vehicles'}/details/${isDriver ? driverId : vehicleId}/costs/edit/${row.id}` : `charges/edit/${row.id}`;\r\n\r\n const refundApproved = row.refundHistory && row.refundHistory[0].status == RequestStatusType.APPROVED;\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { hasChargesWritePolicy && !(row.vehicleId && !row.vehicleActive) && !refundApproved && \r\n {t('common.edit')}\r\n }\r\n { hasChargesWritePolicy && !(row.vehicleId && !row.vehicleActive) && !refundApproved && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const renderTypeAndKilometersCell = (row: ChargeDto) => {\r\n return (\r\n
\r\n
\r\n {row.typeIconSvg && }\r\n {(row.typeName != GenericType.FUEL || !row.fuelName) && {!row.typeIsSystem ? row.typeName : t('common.generic_types.' + row.typeName as any)}}\r\n {row.typeName == GenericType.FUEL && row.fuelName && {t('vehicle.fuels.' + row.fuelName as any)}}\r\n
\r\n { showField(SEGMENT_FEATURES.KM) &&
\r\n \r\n
}\r\n
\r\n )\r\n };\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('charges.responsible_date'),\r\n renderCell: row =>
\r\n
{row.responsibleName || '-'}
\r\n
\r\n
,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n hideOn: ['sm'],\r\n searchField: 'c.date'\r\n },\r\n {\r\n name: showField(SEGMENT_FEATURES.KM) ? t('charges.list.type_kilometers') : t('charges.list.type'),\r\n renderCell: renderTypeAndKilometersCell,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n hideOn: ['sm', 'md'],\r\n searchField: 'type.name'\r\n },\r\n {\r\n name: t('common.supplier'),\r\n renderCell: row => <>\r\n
\r\n {row.supplierUrl && }\r\n {!row.supplierUrl && (row.supplierName || '-')}\r\n
\r\n \r\n ,\r\n hideOn: ['sm', 'md', 'lg', 'xl'],\r\n onSearch: onTableFilter,\r\n searchField: 'supplier.name'\r\n },\r\n {\r\n name: t('common.cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row => (\r\n
\r\n
\r\n \r\n
\r\n {row.paymentDate ? (<>\r\n \r\n \r\n
\r\n \r\n ) : ''}\r\n
\r\n ),\r\n onSearch: onTableFilter,\r\n searchField: 'c.cost'\r\n },\r\n {\r\n name: t('charges.refund'),\r\n renderCell: row => <>\r\n {row.requestRefund ?\r\n <>\r\n {row.refundHistory && row.refundHistory[0].status &&\r\n
\r\n \r\n {t(('charges.list.request_status_type.' + row.refundHistory[0].status) as any)}\r\n {row.refundHistory[0].createdDate &&\r\n <>\r\n {' - '}\r\n \r\n \r\n }\r\n \r\n
}\r\n {row.refundHistory && row.refundHistory[0].situation &&\r\n
\r\n \r\n {t(('charges.situations.' + row.refundHistory[0].situation) as any)}\r\n {row.refundHistory[0].dateRefundTreated &&\r\n <>\r\n {' - '}\r\n \r\n }\r\n \r\n
\r\n }\r\n {!row.refundHistory &&\r\n
\r\n {t('charges.waiting_approval')} \r\n
\r\n }\r\n \r\n :\r\n
\r\n {'-'}\r\n
\r\n\r\n }\r\n ,\r\n width: '20%',\r\n hideOn: ['sm', 'md', 'lg']\r\n }\r\n ];\r\n\r\n if (!isVehicle) {\r\n cols.unshift(\r\n {\r\n renderCell: row =>\r\n
\r\n
\r\n
\r\n
\r\n
,\r\n width: 80,\r\n hideOn: ['sm', 'md'],\r\n onlyImageColumn: true\r\n },\r\n {\r\n name: t('charges.list.vehicle'),\r\n renderCell: row =>\r\n
\r\n
\r\n {row.vehicleRegistrationNumber}\r\n {!row.vehicleActive && }\r\n
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ?' | ' : '') + (row.vehicleModelName ?? '')}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'vehicle.registration_number',\r\n }\r\n );\r\n }\r\n\r\n //if (!isDriver)\r\n //{\r\n cols.push({\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n });\r\n //}\r\n return cols;\r\n }, []);\r\n\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/charges/${type}/${id}`);\r\n\r\n } else {\r\n history.push(`/charges/${type}`);\r\n }\r\n }\r\n\r\n const JumpToImport = () => {\r\n history.push(`/import-charges`);\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters);\r\n\r\n\r\n if (event.ctrlKey) {\r\n window.open('charges/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n setShowRemoveModal(false);\r\n Loading.show();\r\n await ChargesService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n Loading.hide();\r\n if (onDeleteFromList) {\r\n onDeleteFromList();\r\n }\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete charge`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, [criteria]);\r\n\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('CHARGESFILTER', JSON.stringify(f));\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('CHARGESFILTER');\r\n if (cachedFilters != null && !driverId && !month) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n updateTotalFilters(f);\r\n criteria.startDate = f.startDate;\r\n criteria.endDate = f.endDate;\r\n criteria.vehicleId = isVehicle ? vehicleId : f.vehicleId;\r\n criteria.typeId = f.typeId;\r\n criteria.fuelId = f.fuelId;\r\n criteria.supplierId = f.supplierId;\r\n criteria.responsibleId = f.responsibleId;\r\n criteria.minCost = f.cost && f.cost[0];\r\n criteria.maxCost = f.cost && f.cost[1];\r\n criteria.refundSituation = f.refundSituation;\r\n criteria.vehiclesInactive = f.vehiclesInactive;\r\n\r\n if (isOnLoad && f.page) {\r\n criteria.page = f.page\r\n } else {\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.vehicleId && f.vehicleId.length > 0) {\r\n total++;\r\n }\r\n if (f.typeId && f.typeId.length > 0) {\r\n total++;\r\n }\r\n if (f.fuelId && f.fuelId.length > 0) {\r\n total++;\r\n }\r\n if (f.supplierId && f.supplierId.length > 0) {\r\n total++;\r\n }\r\n if (f.responsibleId && f.responsibleId.length > 0 && !isDriver) {\r\n total++;\r\n }\r\n if (f.refundSituation != null) {\r\n total++;\r\n }\r\n if (f.cost && (f.cost[0] > 0 || f.cost[1] > 0)) {\r\n total++;\r\n }\r\n if (f.vehiclesInactive && !isVehicle) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {counters && renderBox(MediaIcon, t('charges.list.average_cost_per_month', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.averageCostPerMonth ?? 0, true, t('charges.list.average_cost_per_month', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }))}\r\n {counters && renderBox(CarIcon, t('charges.list.average_cost_of_charge_per_car', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.averageCostChargePerCar ?? 0, true, t('charges.list.average_cost_of_charge_per_car', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }))}\r\n {counters && renderBox(CoinsIcon, t('charges.list.cumulative_total_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.cumulativeTotalCost ?? 0, true, t('charges.list.cumulative_total_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }))}\r\n \r\n
\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter: number, isMoney?: boolean, tooltip?: string) => {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n {(isVehicle || isDriver) &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n {!criteriaProp && updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n }\r\n {createNewCharge && editable && hasChargesWritePolicy && }\r\n
\r\n
}\r\n\r\n {(!isVehicle && !isDriver) &&\r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasImportChargesWritePolicy &&
JumpToImport()} />
}\r\n {hasChargesWritePolicy && navigateTo('new')} />}\r\n \r\n
}\r\n\r\n {(isVehicle || isDriver) &&\r\n
\r\n onClickItem(row, true)}\r\n allowHover={true}\r\n initialSearch={{ colField: 'c.date', isOrderAsc: true }} />\r\n \r\n
}\r\n\r\n {(!isVehicle && !isDriver) && <>\r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.startDate ? <>{t('common.range.from')} \r\n : filters.endDate ? <>{t('common.range.to')} : undefined,\r\n label: t('charges.filter_date'),\r\n onRemove: () => { filters.startDate = filters.endDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehicleName,\r\n label: t('vehicle.vehicle'),\r\n onRemove: () => { filters.vehicleId = filters.vehicleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.typeName,\r\n label: t('common.type'),\r\n onRemove: () => { filters.typeId = filters.typeName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.fuelName,\r\n label: t('vehicle.fuel'),\r\n onRemove: () => { filters.fuelId = filters.fuelName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.supplierName,\r\n label: t('common.supplier'),\r\n onRemove: () => { filters.supplierId = filters.supplierName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.responsibleName,\r\n label: t('common.responsible'),\r\n onRemove: () => { filters.responsibleId = filters.responsibleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.refundSituation != null ? t('charges.refund') + ' ' + t(('charges.situations.' + filters.refundSituation) as any) : undefined,\r\n onRemove: () => { filters.refundSituation = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.cost || !filters.cost.length || !filters.cost.find(x => x !== undefined) ? undefined :\r\n filters.cost.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.cost[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('common.cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.cost = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehiclesInactive ? t('common.yes') : '',\r\n label: t('charges.vehicle_inactives'),\r\n onRemove: () => { filters.vehiclesInactive = false; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {counters && renderCounterBoxes()}\r\n\r\n \r\n onRowClick(event, row.id)}\r\n onHref={row => `charges/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'c.date', isOrderAsc: false }} />\r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ListChargesScreen;\r\n","import ListChargesScreen from '../../../charges/ListChargesScreen';\r\nimport { ChargeDto } from 'api/charges/models/ChargeDto';\r\nimport ChargeScreen from '../carChargeTab/components/ChargeScreen';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n CHARGE = 'CHARGE'\r\n}\r\n\r\ntype Props = {\r\n vehicle?: VehicleDto;\r\n onDeleteFromList?: () => void;\r\n tourReRender: () => void;\r\n}\r\n\r\n\r\nconst CarChargeTab = ({ onDeleteFromList, vehicle, tourReRender }: Props) => {\r\n const { vehicleId, tabId, itemId, itemType } = useParams<{ vehicleId: string, tabId: string, itemType: string, itemId: string }>();\r\n const history = useHistory();\r\n \r\n return (\r\n
\r\n {(itemType??'list') === ScreenType.LIST.toString().toLowerCase() &&\r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/new`);\r\n }}\r\n onClickItem={(item: ChargeDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n onDeleteFromList={onDeleteFromList}\r\n tourReRender={tourReRender}\r\n >\r\n }\r\n\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() &&\r\n history.goBack() }\r\n />}\r\n
\r\n );\r\n}\r\n\r\nexport default CarChargeTab;\r\n","import { VehiclesSearchCriteria } from './../vehicles/models/VehiclesSearchCriteria';\r\nimport Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { VehicleMaintenancesSearchCriteria } from './models/VehicleMaintenancesSearchCriteria';\r\nimport { VehicleMaintenanceCounterListDto, VehicleMaintenanceDto } from './models/VehicleMaintenanceDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { CatalogVehicleMaintenancesSearchCriteria } from 'api/catalog/models/CatalogVehicleMaintenancesSearchCriteria'\r\n\r\nclass VehicleMaintenancesService {\r\n\r\n public getList(criteria: VehicleMaintenancesSearchCriteria) {\r\n return Http.get>('vehicleMaintenances', criteria);\r\n }\r\n\r\n public getNextMaintenances(criteria: VehicleMaintenancesSearchCriteria) {\r\n return Http.get('vehicleMaintenances/nextMaintenances', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('vehicleMaintenances/' + id);\r\n }\r\n\r\n public create(model: VehicleMaintenanceDto, photo?: CustomFile[]) {\r\n return Http.postWithFile('vehicleMaintenances', model, photo ?? []);\r\n }\r\n\r\n public update(model: VehicleMaintenanceDto, photo?: CustomFile[]) {\r\n return Http.putWithFile('vehicleMaintenances', model, photo ? photo : []);\r\n }\r\n\r\n public remove(model: VehicleMaintenanceDto) {\r\n return Http.put('vehicleMaintenances/deactivate', model);\r\n }\r\n\r\n public getFuelList() {\r\n return Http.get('vehicleMaintenances/getFuelList');\r\n }\r\n\r\n public getColorsList() {\r\n return Http.get('vehicleMaintenances/getColorsList');\r\n }\r\n\r\n public getCountersList(criteria: VehiclesSearchCriteria) {\r\n return Http.get('vehicleMaintenances/counters-list', criteria);\r\n }\r\n \r\n public catalog(model?: CatalogVehicleMaintenancesSearchCriteria) {\r\n return Http.get('vehicleMaintenances/catalog', model);\r\n }\r\n\r\n public catalogWithDate(model?: CatalogVehicleMaintenancesSearchCriteria) {\r\n return Http.get('vehicleMaintenances/catalog-with-date', model);\r\n }\r\n}\r\n\r\nexport default new VehicleMaintenancesService();","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\nimport styles from './MaintenancesFiltersScreen.module.scss';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport { VehicleMaintenanceStates } from 'api/vehicleMaintenances/enums/VehicleMaintenanceStates';\r\nimport MaintenanceContractsService from 'api/contracts/maintenanceContract/MaintenanceContractsService';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nexport interface Filters {\r\n startDate?: Date;\r\n endDate?: Date;\r\n vehicleId?: string;\r\n vehicleName?: string;\r\n typeId?: string;\r\n typeName?: string;\r\n responsibleId?: string;\r\n responsibleName?: string;\r\n supplierId?: string;\r\n supplierName?: string;\r\n currentState?: string;\r\n currentStateName?: string;\r\n executedStartDate?: Date;\r\n executedEndDate?: Date;\r\n vehiclesInactive?: boolean;\r\n page?: number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n genericFilter?: boolean;\r\n onChange?: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst MaintenancesFiltersScreen: React.FC = ({ filters, genericFilter = false, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { setValue, getValues } = form;\r\n const [typesOptions, setTypes] = useState([]);\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n const [responsiblesOptions, setResponsibles] = useState([]);\r\n const [suppliersOptions, setSuppliers] = useState([]);\r\n const [statesOptions, setStatesOptions] = useState([]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [types, vehiclesOptionsList, responsiblesOptionsList, suppliersOptionsList] = await Promise.all([\r\n MaintenanceContractsService.getMaintenanceContractTypes(),\r\n VehiclesService.catalogByMaintenances(),\r\n UsersService.getAllForCompany(),\r\n SuppliersService.catalog({ typeName: GenericType.MAINTENANCE } as CatalogSupplierSearchCriteria)\r\n ]);\r\n\r\n setTypes(types.map(x=> {\r\n return {\r\n ...x,\r\n label: t(`common.maintenance_contract_type.${x.label}` as any)\r\n }\r\n }));\r\n setVehicles(vehiclesOptionsList);\r\n setSuppliers(suppliersOptionsList);\r\n setResponsibles((responsiblesOptionsList || []).map((x: UsersSelectItemDto) => ({ value: x.id || '', label: x.realName || '' })));\r\n\r\n const states: SelectValueLabel[] = [\r\n { value: VehicleMaintenanceStates.PREDICTED, label: t('maintenances.states.PREDICTED') },\r\n { value: VehicleMaintenanceStates.PERFORM, label: t('maintenances.states.PERFORM') }];\r\n\r\n setStatesOptions(states);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get maintenances filter`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally{\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n startDate: undefined,\r\n responsibleId: undefined,\r\n responsibleName: undefined,\r\n vehicleId: undefined,\r\n vehicleName: undefined,\r\n typeId: undefined,\r\n typeName: undefined,\r\n supplierId: undefined,\r\n supplierName: undefined,\r\n currentState: undefined,\r\n currentStateName: undefined,\r\n executedStartDate: undefined,\r\n executedEndDate: undefined,\r\n vehiclesInactive: false\r\n });\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (_filters: Filters) => {\r\n onFilter(_filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n if (onChange) {\r\n onChange(form.getValues());\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {genericFilter && \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('vehicleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('typeName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={typesOptions.find(x => x.value === value) ? { label: typesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"typeId\"\r\n defaultValue={form.getValues('typeId')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('currentStateName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={statesOptions.find(x => x.value === value) ? { label: statesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"currentState\"\r\n defaultValue={form.getValues('currentState')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('responsibleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={responsiblesOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"responsibleId\"\r\n defaultValue={getValues('responsibleId')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('supplierName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={suppliersOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"supplierId\"\r\n defaultValue={getValues('supplierId')} />\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n {\r\n form.setValue('executedStartDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('executedEndDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('executedStartDate')}\r\n defaultEndValue={form.getValues('executedEndDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n form.setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('startDate')}\r\n defaultEndValue={form.getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n\r\n {genericFilter && \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(MaintenancesFiltersScreen);","import React, { useMemo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport styles from './MaintenanceListTable.module.scss';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { VehicleMaintenanceDto } from 'api/vehicleMaintenances/models/VehicleMaintenanceDto';\r\nimport { VehicleMaintenanceStates } from 'api/vehicleMaintenances/enums/VehicleMaintenanceStates';\r\nimport RenderSVG from 'common/components/renderSVG/RenderSVG';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { DATE_FORMAT_DEFAUT, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Reducers } from 'store/types';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport VehicleMaintenancesService from 'api/vehicleMaintenances/VehicleMaintenancesService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\nimport Loading from 'common/services/Loading';\r\n\r\nexport type Props = {\r\n vehicleId?: string;\r\n vehicleSegmentFeatures:string[]\r\n editable : boolean;\r\n data: Paged;\r\n onTableFilter: (field: string, isFilterAsc: boolean) => void;\r\n onPageChange: (page?: number) => void;\r\n onClickItem: (item: VehicleMaintenanceDto, isDetails: boolean,event:any) => void;\r\n onDeleteFromList?: () => void;\r\n};\r\n\r\nconst MaintenanceListTable = ({ vehicleId,vehicleSegmentFeatures, editable, data, onTableFilter, onPageChange, onClickItem, onDeleteFromList }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleMaintenanceWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_WRITE']);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const renderKilometersCell = (row: VehicleMaintenanceDto) => {\r\n return (\r\n
\r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n \r\n
}\r\n {!!row.adviseMaintenanceDate && row.state === VehicleMaintenanceStates.PREDICTED &&
\r\n {/*row.expectedHour && <> | {row.expectedHour}*/}\r\n
}\r\n {!!row.maintenanceDate && row.state === VehicleMaintenanceStates.PERFORM &&
\r\n {row.maintenanceHour && <> | {row.maintenanceHour}}\r\n
}\r\n
\r\n )\r\n };\r\n\r\n const renderTableActionCell = (\r\n row: VehicleMaintenanceDto,\r\n ) => {\r\n\tconst urlDetails = vehicleId ? `/vehicles/details/${vehicleId}/maintenance/details/${row.id}` : `maintenances/details/${row.id}`;\r\n const urlEdit = vehicleId ? `/vehicles/details/${vehicleId}/maintenance/edit/${row.id}` : `maintenances/edit/${row.id}`;\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { hasVehicleMaintenanceWritePolicy && editable && \r\n {t('common.edit')}\r\n }\r\n { hasVehicleMaintenanceWritePolicy && editable && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const showRemoveItemDialog = (item: VehicleMaintenanceDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n\tconst onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n\tconst onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n setShowRemoveModal(false);\r\n Loading.show();\r\n await VehicleMaintenancesService.remove(itemToRemove);\r\n onPageChange();\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n Loading.hide();\r\n if(onDeleteFromList){\r\n onDeleteFromList();\r\n }\r\n\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete maintenance`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n\r\n const showField = (feature: string) => {\r\n return (vehicleSegmentFeatures.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('common.type_description'),\r\n renderCell: row =>\r\n
\r\n {row.typeName ?
{row.typeIconSvg && } {t(('common.maintenance_contract_type.' + row.typeName) as any)}
: null}\r\n {row.description}\r\n
,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n searchField: 'vm.description'\r\n },\r\n {\r\n name: t('common.state'),\r\n renderCell: row =>\r\n <>\r\n {row.state == VehicleMaintenanceStates.PREDICTED ? \r\n //: row.state == VehicleMaintenanceStates.OBLIGATORY ? \r\n : row.state == VehicleMaintenanceStates.PERFORM ? \r\n : }\r\n
\r\n {row.responsibleName || '-'}\r\n
\r\n ,\r\n onSearch: onTableFilter,\r\n hideOn: ['sm'],\r\n searchField: 'vm.state'\r\n },\r\n {\r\n name:showField(SEGMENT_FEATURES.KM) ? t('maintenances.list.advise_kilometer_date') : t('maintenances.list.advise_date'),\r\n renderCell: renderKilometersCell,\r\n cellAlignment: 'right',\r\n onSearch: onTableFilter,\r\n searchField: showField(SEGMENT_FEATURES.KM) ? 'vm.kilometers' : 'vm.maintenance_date',\r\n hideOn: ['sm', 'md', 'lg']\r\n },\r\n {\r\n name: t('maintenances.list.affected_to_date'),\r\n renderCell: row =>\r\n
\r\n {row.responsibleName || '-'}\r\n {!!row.expectedDate &&
\r\n {row.expectedHour && <> | {row.expectedHour}}\r\n
}\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'vm.expected_date',\r\n hideOn: ['xxl'],\r\n },\r\n {\r\n name: t('common.cost', { vat : (userProfile?.useValueWithVat? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row =>\r\n
\r\n
\r\n {row.maintenanceContractsId\r\n ? {t('maintenances.included_maintenance_contract')}\r\n : row.cost !== undefined && row.cost !== null ? : '-'\r\n }\r\n
\r\n {row.paymentDate && !row.maintenanceContractsId ? (
\r\n \r\n \r\n
\r\n \r\n
) : ''}\r\n
,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n searchField: 'vm.cost',\r\n cellAlignment: 'right',\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('common.supplier'),\r\n // renderCell: row => <>\r\n //
\r\n // {row.supplierUrl && } {(row.supplierName || '-')}\r\n //
\r\n // \r\n // ,\r\n renderCell: row => <>\r\n
\r\n {row.supplierUrl && }\r\n {!row.supplierUrl && (row.supplierName || '-')}\r\n
\r\n \r\n ,\r\n onSearch: onTableFilter,\r\n searchField: 'supplier.name',\r\n hideOn: ['sm', 'md', 'lg']\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n }\r\n ];\r\n\r\n if (!vehicleId) {\r\n cols.unshift(\r\n {\r\n renderCell: row =>\r\n
\r\n
\r\n
\r\n
\r\n
,\r\n width: 90,\r\n hideOn: ['sm', 'md'],\r\n onlyImageColumn: true\r\n },\r\n {\r\n name: t('vehicles.list.vehicle'),\r\n renderCell: row =>\r\n
\r\n
\r\n {row.registrationNumber}\r\n {!row.vehicleActive && }\r\n
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ? ' | ' : '') + (row.vehicleModelName ?? '')}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'v.registration_number',\r\n }\r\n );\r\n }\r\n\r\n return cols;\r\n }, []);\r\n\r\n return (\r\n
\r\n onClickItem(row,true,event)}\r\n //onHref={row => vehicleId ? `/vehicles/details/${vehicleId}/maintenance/details/${row.id}` : `maintenances/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: showField(SEGMENT_FEATURES.KM) ? 'vm.kilometers' : 'vm.maintenance_date', isOrderAsc: false }}\r\n />\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default MaintenanceListTable;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport styles from './ListMaintenancesScreen.module.scss';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehicleMaintenancesService from 'api/vehicleMaintenances/VehicleMaintenancesService';\r\nimport Loading from 'common/services/Loading';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport { VehicleMaintenanceDto } from 'api/vehicleMaintenances/models/VehicleMaintenanceDto';\r\nimport { VehicleMaintenancesSearchCriteria } from 'api/vehicleMaintenances/models/VehicleMaintenancesSearchCriteria';\r\nimport MaintenanceFiltersScreen, { Filters } from 'screens/maintenances/components/maintenanceFilters/MaintenancesFiltersScreen';\r\nimport { useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport MaintenanceListTable from './MaintenanceListTable/MaintenanceListTable';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\n\r\nexport type Props = {\r\n criteria?: VehicleMaintenancesSearchCriteria;\r\n editable: boolean,\r\n onClickItem: (item: VehicleMaintenanceDto, isDetails: boolean,event:any) => void;\r\n createNewMaintenance: () => void;\r\n onDeleteFromList?: () => void;\r\n setPage?: (page:number) => void;\r\n tourReRender?: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ListMaintenancesScreen = ({ criteria: _criteria, editable, onClickItem, createNewMaintenance, onDeleteFromList, setPage, tourReRender, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [maintenances, setMaintenances] = useState>();\r\n\r\n const { vehicleId, month } = useParams<{ vehicleId: string, month: string }>();\r\n\r\n const [criteria, setCriteria] = useState(_criteria || {\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'vm.maintenance_date',\r\n orderBy: 'desc',\r\n vehicleId: vehicleId,\r\n startDate: month ? new Date(month) : undefined,\r\n endDate: month ? new Date(new Date(new Date(new Date(month).setMonth(new Date(month).getMonth() + 1)).setUTCHours(0)).setUTCSeconds(-1)) : undefined\r\n });\r\n\r\n const [currentPage, setCurrentPage] = useState(1);\r\n\r\n const [filters, setFilters] = useState(month ? { startDate: criteria.startDate, endDate: criteria.endDate } : {});\r\n const [filtersTotal, setFiltersTotal] = useState(month ? 1 : 0);\r\n const [vehicleSegmentFeatures,setVehicleSegmentFeatures] = useState([])\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleMaintenancesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_WRITE']);\r\n\r\n const segmentFeaturesLoaded = useRef(false);\r\n\r\n const getData = async () => {\r\n if (!segmentFeaturesLoaded.current) {\r\n getSegmentFeatures();\r\n return;\r\n }\r\n\r\n try {\r\n Loading.show();\r\n criteria.vehicleId = vehicleId ?? criteria.vehicleId;\r\n const res = await VehicleMaintenancesService.getList(criteria);\r\n setMaintenances(res);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get maintenance list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n finally{\r\n tourReRender && tourReRender();\r\n }\r\n };\r\n\r\n const getSegmentFeatures = async () => {\r\n try {\r\n Loading.show();\r\n let features: string[] = [];\r\n\r\n if (vehicleId || criteria.vehicleId) {\r\n criteria.vehicleId = vehicleId ?? criteria.vehicleId;\r\n features = await VehiclesService.getVehicleSegmentFeatures(criteria.vehicleId);\r\n }\r\n\r\n segmentFeaturesLoaded.current = true;\r\n\r\n setVehicleSegmentFeatures(features ?? [])\r\n setCriteria({\r\n ...criteria,\r\n orderColumn: showField(SEGMENT_FEATURES.KM, features) ? 'vm.kilometers' : 'vm.maintenance_date'\r\n });\r\n\r\n } catch (error) {\r\n segmentFeaturesLoaded.current = true;\r\n getData();\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get vehicle segment features`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const onPageChange = (page?: number) => {\r\n setCurrentPage(page ?? currentPage);\r\n setCriteria({ ...criteria, page: page ?? currentPage });\r\n if(setPage){setPage(page ?? 1)}\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const onChangeFilters = (f: Filters) => {\r\n updateTotalFilters(f);\r\n setFilters(f);\r\n criteria.startDate = f.startDate;\r\n criteria.endDate = f.endDate;\r\n criteria.vehicleId = f.vehicleId;\r\n criteria.state = f.currentState;\r\n criteria.supplierId = f.supplierId;\r\n criteria.responsibleId = f.responsibleId;\r\n criteria.typeId = f.typeId;\r\n\r\n if (currentPage > 1) {\r\n setCurrentPage(1);\r\n }\r\n else {\r\n getData();\r\n }\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.startDate) {\r\n total++;\r\n }\r\n if (f.endDate) {\r\n total++;\r\n }\r\n if (f.currentState) {\r\n total++;\r\n }\r\n if (f.typeId) {\r\n total++;\r\n }\r\n if (f.supplierId) {\r\n total++;\r\n }\r\n if (f.vehicleId) {\r\n total++;\r\n }\r\n if (f.responsibleId) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const showField = (feature: string, features: string[] = vehicleSegmentFeatures) => {\r\n return (features.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n useEffect(() => {\r\n if (_criteria) {\r\n setCriteria(_criteria);\r\n }\r\n }, [_criteria]);\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [currentPage, criteria]);\r\n\r\n return (\r\n \r\n \r\n {vehicleId &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen =>\r\n { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n />\r\n }\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n\r\n \r\n {hasVehicleMaintenancesWritePolicy && editable && }\r\n
\r\n
\r\n }\r\n\r\n {maintenances && }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ListMaintenancesScreen;\r\n","import React from 'react';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport DateTimePickerController from 'common/components/dateTimePicker/DateTimePickerController';\r\nimport styles from './InputGroupDate.module.scss';\r\n\r\ntype Props = {\r\n form: any;\r\n //isDetails: boolean;\r\n\r\n inputType?: string;\r\n inputText?: string;\r\n inputPlaceholder?: string;\r\n inputName: string;\r\n inputFormat?: 'number' | 'default' | 'money' | 'percentage' | 'integer' | undefined;\r\n inputRequired?: boolean;\r\n inputMaxLength?: number;\r\n inputDisabled: boolean;\r\n\r\n datePlaceholder?: string;\r\n dateSelected: any;\r\n dateFormat: string;\r\n dateCustomInput: JSX.Element;\r\n dateName: string;\r\n dateRequired?: boolean;\r\n dateDisabled: boolean;\r\n onChangeDate: (date: Date) => void;\r\n showMonthYearPicker?: boolean;\r\n};\r\n\r\nconst InputGroupDate = ({ form, datePlaceholder, dateSelected, dateFormat, dateCustomInput, dateName, dateRequired, dateDisabled, onChangeDate,\r\n inputType, inputText, inputPlaceholder, inputName, inputFormat, inputRequired, inputMaxLength, inputDisabled, showMonthYearPicker, ...props }: Props) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default InputGroupDate;\r\n","import React, { useState } from 'react';\r\nimport Timekeeper, { TimeOutput } from 'react-timekeeper';\r\nimport { FaRegClock } from 'react-icons/fa';\r\nimport DateTimePickerController from 'common/components/dateTimePicker/DateTimePickerController';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport styles from './DateWithHour.module.scss';\r\n\r\ntype Props = {\r\n form: any;\r\n //isDetails: boolean;\r\n datePlaceholder?: string;\r\n dateSelected: any;\r\n dateFormat: string;\r\n dateCustomInput: JSX.Element;\r\n dateName: string;\r\n dateRequired?: boolean;\r\n dateDisabled: boolean;\r\n minDate?: Date | undefined;\r\n onChangeDate: (date: Date) => void;\r\n\r\n onTimeChoose: (time: TimeOutput) => void;\r\n timePlaceholder?: string;\r\n timeName: string;\r\n timeDisabled?: boolean;\r\n\r\n className?: string;\r\n};\r\n\r\nconst DateWithHour = ({ form, datePlaceholder, dateSelected, dateFormat, dateCustomInput, dateName, dateRequired, dateDisabled, onChangeDate,\r\n onTimeChoose, timePlaceholder, timeName, timeDisabled, className, minDate, ...props }: Props) => {\r\n const [showTime, setShowTime] = useState(false);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {showTime &&\r\n
\r\n { setShowTime(false); onTimeChoose(hour) }}\r\n />\r\n
\r\n }\r\n {!showTime &&\r\n }\r\n placeholder={timePlaceholder}\r\n name={timeName}\r\n form={form}\r\n disabled={timeDisabled}\r\n onClick={() => setShowTime(true)}\r\n isClearable={true}\r\n removeInputBorderRadius={true}\r\n />\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DateWithHour;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { CatalogMaintenanceContractsSearchCriteria } from 'api/catalog/models/CatalogMaintenanceContractsSearchCriteria';\r\nimport { CatalogSupplierSearchCriteria } from 'api/catalog/models/CatalogSupplierSearchCriteria';\r\nimport MaintenanceContractsService from 'api/contracts/maintenanceContract/MaintenanceContractsService';\r\nimport { GenericType } from 'api/genericTypes/enums/GenericType';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { VehicleMaintenanceStates } from 'api/vehicleMaintenances/enums/VehicleMaintenanceStates';\r\nimport { VehicleMaintenanceDto } from 'api/vehicleMaintenances/models/VehicleMaintenanceDto';\r\nimport VehicleMaintenancesService from 'api/vehicleMaintenances/VehicleMaintenancesService';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport AlertNoticesService from 'api/alertNotices/AlertNoticesService';\r\nimport Button from 'common/components/button/Button';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputResizable from 'common/components/input/InputResizable';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport Label from 'common/components/label/Label';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, removeAccents, SEGMENT_FEATURES } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useFieldArray, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport styles from './MaintenanceScreen.module.scss';\r\nimport InputGroupDate from 'common/components/inputGroupDate/InputGroupDate';\r\nimport DateWithHour from 'common/components/dateWithHour/DateWithHour';\r\nimport { AlertNoticeDto, SelectedAlertNoticeDto } from 'api/alertNotices/models/AlertNoticeDto';\r\nimport { AlertNoticeTypeEnum } from 'api/alertNotices/enums/AlertNoticeTypeEnum';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { FaInfoCircle } from 'react-icons/fa';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport InputInfoWarning from 'common/components/inputInfoWarning/InputInfoWarning';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\n\r\n\r\nexport type Props = {\r\n item?: VehicleMaintenanceDto | null;\r\n isDetails: boolean;\r\n onBackList: () => void;\r\n onItemDetails: (state: boolean) => void;\r\n onSubmitDone: (itemId: string) => void;\r\n isModal?: boolean;\r\n vehicleId?: string | null;\r\n editable: boolean;\r\n titleHeader: string | undefined;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst MaintenanceScreen = ({ item, editable, isDetails, onBackList, onItemDetails, onSubmitDone, titleHeader, isModal, vehicleId: propVehicleId, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { vehicleId: routeVehicleId, itemType, itemId, tabId, type } = useParams<{ vehicleId: string, itemType: string, itemId: string, tabId: string, type: string }>();\r\n const vehicleId = propVehicleId ? propVehicleId : routeVehicleId;\r\n const form = useForm({ shouldUnregister: false });\r\n const alertNotices = useFieldArray({ control: form.control, name: 'alertNotices', keyName: 'formId' as any });\r\n const plannedAlertNotices = useFieldArray({ control: form.control, name: 'plannedAlertNotices', keyName: 'formId' as any });\r\n\r\n const { handleSubmit, setValue, getValues, errors, reset } = form;\r\n\r\n const [showAlertNotice, setShowAlertNotice] = useState(false);\r\n const [showPlannedAlertNotice, setShowPlannedAlertNotice] = useState(false);\r\n const [vehicleOptions, setVehicleOptions] = useState([]);\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [maintenance, setMaintenance] = useState(null);\r\n\r\n const [alertNoticesInDb, setAlertNoticesInDb] = useState([]);\r\n const [alertNoticeOptions, setAlertNoticeOptions] = useState([]);\r\n const [showRemoveAlertNotice, setShowRemoveAlertNotice] = useState(false);\r\n const [alertNoticeToRemoveIndex, setAlertNoticeToRemoveIndex] = useState(null);\r\n const [alertNoticeIdsToRemove, setAlertNoticeIdsToRemove] = useState([]);\r\n\r\n const [plannedAlertNoticeOptions, setPlannedAlertNoticeOptions] = useState([]);\r\n const [showRemovePlannedAlertNotice, setShowRemovePlannedAlertNotice] = useState(false);\r\n const [plannedAlertNoticeToRemoveIndex, setPlannedAlertNoticeToRemoveIndex] = useState(null);\r\n const [plannedAlertNoticeIdsToRemove, setPlannedAlertNoticeIdsToRemove] = useState([]);\r\n\r\n\r\n const [contractTypeOptions, setContractTypeOptions] = useState([]);\r\n const [contractNumbersOptions, setContractNumbersOptions] = useState([]);\r\n const [statesOptions, setStatesOptions] = useState([]);\r\n const [responsibleOptions, setResponsibleOptions] = useState([]);\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n\r\n const [vehicle, setVehicle] = useState(undefined);\r\n const [inputKmsBelowCurrentVehicleKms, setInputKmsBelowCurrentVehicleKms] = useState(false);\r\n\r\n const [state, setState] = useState();\r\n\r\n const [savedFiles, setSavedFiles] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleMaintenancesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_WRITE']);\r\n const hasReadGPSPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n const [currentKmsGps, setCurrentKmsGps] = useState(null);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n setValue('vehicleId', vehicleId);\r\n\r\n const contractTypesOrig = await MaintenanceContractsService.getMaintenanceContractTypes();\r\n const contractTypes = contractTypesOrig.map(x => ({ ...x, label: t(`common.maintenance_contract_type.${x.label}` as any) }));\r\n const contractTypesOrdered = Utils.sortAlphabetically(contractTypes);\r\n setContractTypeOptions(contractTypesOrdered);\r\n\r\n const responsibles = await UsersService.catalog();\r\n setResponsibleOptions((responsibles || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' })));\r\n\r\n const suppliers = await SuppliersService.catalog({ typeName: GenericType.MAINTENANCE } as CatalogSupplierSearchCriteria);\r\n setSupplierOptions(suppliers);\r\n\r\n const vehicleMaintenanceStates = Object.keys(VehicleMaintenanceStates).filter(key => isNaN(Number(key)));\r\n\r\n const states: SelectValueLabel[] = vehicleMaintenanceStates.map(vehicleMaintenanceState => { return { value: vehicleMaintenanceState, label: t(`maintenances.states.${vehicleMaintenanceState}` as any) } });\r\n setStatesOptions(Utils.sortAlphabetically(states));\r\n\r\n const alertNoticesDB: AlertNoticeDto[] = await AlertNoticesService.getAll();\r\n setAlertNoticesInDb(alertNoticesDB);\r\n buildAndSetAlertNoticeOptions(alertNoticesDB);\r\n buildAndSetPlannedAlertNoticeOptions(alertNoticesDB);\r\n\r\n let vehicleIdVerified = vehicleId;\r\n let resultVehicleId: string | undefined = undefined;\r\n if (item && item.id) {\r\n const result = await VehicleMaintenancesService.getById(item.id);\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get the maintenance with id: ${item.id}`);\r\n onBackList();\r\n }\r\n resultVehicleId = result.vehicleId;\r\n vehicleIdVerified = !vehicleIdVerified ? (result.vehicleId ?? '') : vehicleIdVerified;\r\n if (!!result.adviseMaintenanceDate) {\r\n getContactNumbersByDate(result.adviseMaintenanceDate, resultVehicleId);\r\n } else {\r\n getContractsByVehicle(resultVehicleId);\r\n }\r\n setValues(result);\r\n }\r\n else {\r\n getContactNumbersByDate();\r\n }\r\n\r\n if (Utils.isStringNullOrEmpty(vehicleId)) {\r\n const vehicles = await VehiclesService.catalog(resultVehicleId);\r\n setVehicleOptions(vehicles);\r\n }\r\n\r\n if (!Utils.isStringNullOrEmpty(vehicleIdVerified)) {\r\n getVehicle(vehicleIdVerified);\r\n }\r\n\r\n setShowAlertNotice(true)\r\n setShowPlannedAlertNotice(true)\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get information to create maintenance`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getGpsKms = async () => {\r\n if (vehicle && vehicle.id && vehicle.companyTrackingProvider && vehicle?.companyTrackingProvider !== TrackingProvider.NONE && vehicle.trackingDeviceId) {\r\n try {\r\n const position = await TrackingService.getPosition(vehicle.id);\r\n setCurrentKmsGps(position.km ?? null);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get vehicle gps kms`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n const getContractsByVehicle = async (vehicleId?: string) => {\r\n try {\r\n const results = await MaintenanceContractsService.catalog({ vehicleId: !!vehicleId ? vehicleId : form.getValues('vehicleId') } as CatalogMaintenanceContractsSearchCriteria);\r\n setContractNumbersOptions(results);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get contracts of vehicle`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getVehiclesByContract = async () => {\r\n try {\r\n const results = await VehiclesService.getByMaintenanceContractId({ id: form.getValues('maintenanceContractsId') } as CatalogMaintenanceContractsSearchCriteria);\r\n setVehicleOptions(results);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get vehicles of contract`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getContactNumbersByDate = async (date?: Date, vehicleIdAux?: string) => {\r\n const contractNumbers = await MaintenanceContractsService.catalog({ vehicleId: !!vehicleIdAux ? vehicleIdAux : vehicleId, date } as CatalogMaintenanceContractsSearchCriteria);\r\n if (!contractNumbers.find(x => x.value == getValues('maintenanceContractsId'))) {\r\n setValue('maintenanceContractsId', null);\r\n }\r\n setContractNumbersOptions(contractNumbers);\r\n }\r\n\r\n const setValues = (values: VehicleMaintenanceDto) => {\r\n values.adviseMaintenanceDate = values.adviseMaintenanceDate ? new Date(values.adviseMaintenanceDate) : undefined;\r\n values.expectedDate = values.expectedDate ? new Date(values.expectedDate) : undefined;\r\n values.maintenanceDate = values.maintenanceDate ? new Date(values.maintenanceDate) : undefined;\r\n values.paymentDate = values.paymentDate ? new Date(values.paymentDate) : undefined;\r\n reset(values);\r\n\r\n setValuesFiles(values.attachments);\r\n setMaintenance(values);\r\n }\r\n\r\n const onSubmit = async (model: VehicleMaintenanceDto) => {\r\n try {\r\n\r\n const idsAlertNoticesSelected = model.alertNotices.map(an => an.id);\r\n const missingKilometers = !model.adviseMaintenanceKilometers && !!alertNoticeOptions.find(anOpt => anOpt.fullLabel == AlertNoticeTypeEnum.KILOMETERS && idsAlertNoticesSelected.some(id => id == anOpt.value));\r\n const missingDate = !model.adviseMaintenanceDate && !!alertNoticeOptions.find(anOpt => anOpt.fullLabel == AlertNoticeTypeEnum.TIME_PERIODS && idsAlertNoticesSelected.some(id => id == anOpt.value));\r\n if (!model.description || !model.typeId ||\r\n (!model.cost && !model.maintenanceContractsId && ((state == VehicleMaintenanceStates.PERFORM) || (model.state == VehicleMaintenanceStates.PERFORM))) ||\r\n ((state == VehicleMaintenanceStates.PREDICTED) && (missingKilometers || missingDate))\r\n ) {\r\n addToast(missingKilometers\r\n ? t('maintenances.advise_km_empty_and_alerts_filled')\r\n : missingDate\r\n ? t('maintenances.advise_date_empty_and_alerts_filled')\r\n : t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n setShowAlertNotice(false);\r\n setShowPlannedAlertNotice(false);\r\n if (model.maintenanceContractsId) {\r\n model.cost = null;\r\n }\r\n\r\n prepareFilesToSubmit();\r\n\r\n if (model.id || maintenance?.id) {\r\n if (!model.id && maintenance) {\r\n model.id = maintenance.id;\r\n }\r\n await VehicleMaintenancesService.update(model, model.attachments ?? []);\r\n } else {\r\n itemId = await VehicleMaintenancesService.create(model, model.attachments ?? []);\r\n setMaintenance(await VehicleMaintenancesService.getById(itemId));\r\n }\r\n\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n Loading.hide();\r\n onSubmitDone(itemId);\r\n\r\n getData();\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't update the maintenance with id: ${model.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (_item: VehicleMaintenanceDto) => {\r\n setItemToRemove(_item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await VehicleMaintenancesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n onBackList();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFiles(savedFiles);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n setValuesFiles((getValues('attachments') ?? []).filter(x => !x.id));\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setValue('attachments', files);\r\n setSavedFiles(files?.filter(x => x.id));\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (vehicle && !isDetails) {\r\n // current kms from tracking\r\n getGpsKms();\r\n rebuildAndSetAlertNoticeOptions();\r\n\r\n }\r\n }, [vehicle, isDetails]);\r\n\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const renderButtons = () => {\r\n return (\r\n <>\r\n
\r\n {\r\n if (!!maintenance) { reset(maintenance); }\r\n onBackList()\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {isDetails && !isModal && editable && hasVehicleMaintenancesWritePolicy && maintenance?.active &&\r\n showRemoveItemDialog({ id: maintenance?.id } as VehicleMaintenanceDto)} />\r\n }\r\n {isDetails && !isModal && editable && hasVehicleMaintenancesWritePolicy && maintenance?.active &&\r\n { onItemDetails(false) }}\r\n />}\r\n {(!isDetails || isModal) && hasVehicleMaintenancesWritePolicy &&\r\n }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />\r\n
\r\n \r\n );\r\n };\r\n\r\n const currentState = form.watch('state');\r\n\r\n const maintenanceContractId = form.watch('maintenanceContractsId');\r\n\r\n const changeVehicle = (data: SelectValueLabel) => {\r\n const vId = data ? data.value : null;\r\n setValue('vehicleId', vId);\r\n getVehicle(vId);\r\n }\r\n\r\n const buildAndSetAlertNoticeOptions = (alertNoticesArr: AlertNoticeDto[]) => {\r\n const mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesArr) {\r\n alertNoticesArr.map(x => {\r\n let label: string = x.value + ' ';\r\n if (x.alertNoticeType == AlertNoticeTypeEnum.KILOMETERS) {\r\n if (!showField(SEGMENT_FEATURES.KM)) {\r\n return null\r\n }\r\n label = label + (x.value > 1 ? t(('maintenances.alert_notice_type.PLURALIZED_' + AlertNoticeTypeEnum.KILOMETERS) as any) : t(('maintenances.alert_notice_type.' + AlertNoticeTypeEnum.KILOMETERS) as any)) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n else if (x.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS) {\r\n label = label + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n\r\n mappedAlertNotices.push({ label, value: x.id, fullLabel: x.alertNoticeType })\r\n }).filter(x => x);\r\n }\r\n\r\n setAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n const rebuildAndSetAlertNoticeOptions = () => {\r\n const mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesInDb) {\r\n alertNoticesInDb.map(x => {\r\n let label: string = x.value + ' ';\r\n if (x.alertNoticeType == AlertNoticeTypeEnum.KILOMETERS) {\r\n if (!showField(SEGMENT_FEATURES.KM)) {\r\n return null\r\n }\r\n label = label + (x.value > 1 ? t(('maintenances.alert_notice_type.PLURALIZED_' + AlertNoticeTypeEnum.KILOMETERS) as any) : t(('maintenances.alert_notice_type.' + AlertNoticeTypeEnum.KILOMETERS) as any)) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n else if (x.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS) {\r\n label = label + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n }\r\n\r\n mappedAlertNotices.push({ label, value: x.id, fullLabel: x.alertNoticeType })\r\n }).filter(x => x);\r\n }\r\n\r\n setAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n const renderAlertNotice = (index: number, an: any) => {\r\n return (\r\n input ? removeAccents(itemFilter.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />);\r\n }\r\n\r\n const addAlertNotice = () => {\r\n alertNotices.append({\r\n id: null\r\n });\r\n }\r\n\r\n const removeAlertNotice = () => {\r\n if (alertNoticeToRemoveIndex === null) return;\r\n\r\n if (alertNotices.fields[alertNoticeToRemoveIndex]?.id) {\r\n setAlertNoticeIdsToRemove([...alertNoticeIdsToRemove, alertNotices.fields[alertNoticeToRemoveIndex].id!]);\r\n }\r\n\r\n alertNotices.remove(alertNoticeToRemoveIndex);\r\n\r\n setShowRemoveAlertNotice(false);\r\n }\r\n\r\n const setRemoveAlertNotice = (index: number) => {\r\n setShowRemoveAlertNotice(true);\r\n setAlertNoticeToRemoveIndex(index);\r\n }\r\n\r\n const buildAndSetPlannedAlertNoticeOptions = (alertNoticesArr: AlertNoticeDto[]) => {\r\n\r\n let mappedAlertNotices: SelectValueLabel[] = [];\r\n if (alertNoticesArr) {\r\n mappedAlertNotices = alertNoticesArr.filter(item => item.alertNoticeType == AlertNoticeTypeEnum.TIME_PERIODS).map((x, i) => {\r\n const label: string = x.value + ' ' + t(('maintenances.periodicity_duration.' + x.periodicity) as any) + ' ' + t(('maintenances.alert_notice_comparison.' + x.alertNoticeComparison) as any);\r\n return { label, value: x.id, fullLabel: x.alertNoticeType }\r\n });\r\n }\r\n setPlannedAlertNoticeOptions(mappedAlertNotices);\r\n }\r\n\r\n const renderPlannedAlertNotice = (index: number, an: any) => {\r\n return (\r\n input ? removeAccents(itemFilter.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />);\r\n }\r\n\r\n const addPlannedAlertNotice = () => {\r\n plannedAlertNotices.append({\r\n id: null\r\n });\r\n }\r\n\r\n const removePlannedAlertNotice = () => {\r\n if (plannedAlertNoticeToRemoveIndex === null) return;\r\n\r\n if (plannedAlertNotices.fields[plannedAlertNoticeToRemoveIndex]?.id) {\r\n setAlertNoticeIdsToRemove([...plannedAlertNoticeIdsToRemove, plannedAlertNotices.fields[plannedAlertNoticeToRemoveIndex].id!]);\r\n }\r\n\r\n plannedAlertNotices.remove(plannedAlertNoticeToRemoveIndex);\r\n\r\n setShowRemovePlannedAlertNotice(false);\r\n }\r\n\r\n const setRemovePlannedAlertNotice = (index: number) => {\r\n setShowRemovePlannedAlertNotice(true);\r\n setPlannedAlertNoticeToRemoveIndex(index);\r\n }\r\n\r\n const canShowMaintenanceQuestionArea = () => {\r\n const stateIsPerform = currentState === VehicleMaintenanceStates.PERFORM;\r\n\r\n const valueToReturn = currentState && ((!maintenance && !stateIsPerform && !isDetails) ||\r\n (!!maintenance?.responsibleId || !!maintenance?.expectedDate) || !stateIsPerform);\r\n return valueToReturn;\r\n }\r\n\r\n const canShowAlertNotifications = () => {\r\n const stateIsPredicted = currentState === VehicleMaintenanceStates.PREDICTED;\r\n\r\n const valueToReturn = currentState && ((!maintenance && stateIsPredicted && !isDetails) ||\r\n (!!maintenance?.adviseMaintenanceKilometers || !!maintenance?.adviseMaintenanceDate) ||\r\n stateIsPredicted ||\r\n (!stateIsPredicted && maintenance && maintenance.alertNotices.length > 0));\r\n return valueToReturn;\r\n }\r\n\r\n const getVehicle = async (id?: string | null) => {\r\n try {\r\n const _vehicle = id ? await VehiclesService.getById(id) : undefined\r\n setVehicle(_vehicle);\r\n\r\n compareKms(_vehicle);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.MAINTENANCES, `Couldn't get vehicle data`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const compareKms = (_vehicle?: VehicleDto | undefined) => {\r\n if (form.watch('kilometers') && (_vehicle || vehicle) && (form.watch('kilometers') ?? 0) < (_vehicle?.currentKilometers ?? vehicle?.currentKilometers ?? 0)) {\r\n setInputKmsBelowCurrentVehicleKms(true);\r\n return;\r\n }\r\n setInputKmsBelowCurrentVehicleKms(false);\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (vehicle?.segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n {!isModal &&
\r\n { if (!!maintenance) { reset(maintenance); } history.goBack() }} />\r\n {titleHeader}\r\n {(Boolean(maintenance) && !maintenance?.active) &&\r\n {' - ' + t('maintenances.maintenance_deleted')}\r\n }\r\n
}\r\n \r\n {!vehicleId && \r\n \r\n \r\n {\r\n changeVehicle(data);\r\n getContractsByVehicle();\r\n getValues();\r\n }} />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('state', data ? data.value : null);\r\n setValue('maintenanceDate', null);\r\n setValue('maintenanceHour', null);\r\n setMaintenance(maintenance ? { ...maintenance, maintenanceDate: undefined, maintenanceHour: undefined } : null);\r\n setState(data?.value);\r\n getGpsKms();\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(typeFO.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('typeId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n \r\n {currentState === VehicleMaintenanceStates.PREDICTED && showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n {\r\n setValue('adviseMaintenanceDate', date);\r\n getContactNumbersByDate(date);\r\n }}\r\n dateSelected={maintenance && maintenance.adviseMaintenanceDate ? moment(maintenance.adviseMaintenanceDate).toDate() : undefined}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n dateCustomInput={} removeInputBorderRadius={true} />}\r\n dateName=\"adviseMaintenanceDate\"\r\n dateRequired={false}\r\n dateDisabled={isDetails && !isModal}\r\n />\r\n \r\n \r\n \r\n }\r\n {currentState === VehicleMaintenanceStates.PREDICTED && !showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {currentState === VehicleMaintenanceStates.PERFORM && showField(SEGMENT_FEATURES.KM) && \r\n \r\n \r\n compareKms()}\r\n />\r\n \r\n {vehicle && !isDetails && vehicle?.currentKilometers ? : null}\r\n {hasReadGPSPolicy && vehicle && !isDetails && currentKmsGps != null && }\r\n \r\n }\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('supplierId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('maintenanceContractsId', data ? data.value : null);\r\n getVehiclesByContract();\r\n getValues();\r\n }}\r\n />\r\n \r\n \r\n {!maintenanceContractId && <>\r\n \r\n \r\n \r\n \r\n {form.formState.isSubmitted && (!form.getValues('cost') && !form.getValues('maintenanceContractsId') && ((state == VehicleMaintenanceStates.PERFORM) || (form.getValues('state') == VehicleMaintenanceStates.PERFORM)))\r\n && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {currentState === VehicleMaintenanceStates.PERFORM && \r\n \r\n \r\n {\r\n setValue('maintenanceDate', date);\r\n //setMaintenance(maintenance ? { ...maintenance, maintenanceDate: date } : null);\r\n }}\r\n dateSelected={maintenance && maintenance.maintenanceDate ? moment(maintenance.maintenanceDate).toDate() : undefined}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n dateCustomInput={} removeIconOrTextBorderRadius={true} />}\r\n dateName=\"maintenanceDate\"\r\n dateRequired={true}\r\n dateDisabled={(isDetails && !isModal)}\r\n\r\n onTimeChoose={hour => { setValue('maintenanceHour', hour.formatted24) }}\r\n timePlaceholder={t('common.hour')}\r\n timeName=\"maintenanceHour\"\r\n timeDisabled={(isDetails && !isModal)}\r\n />\r\n \r\n \r\n }\r\n\r\n {canShowAlertNotifications() && \r\n
\r\n \r\n {(!isDetails && currentState !== VehicleMaintenanceStates.PERFORM) && }\r\n
\r\n\r\n {alertNotices.fields.length === 0 &&
\r\n {t('maintenances.without_alert_notices')}\r\n
}\r\n\r\n {!!alertNoticeOptions && !!showAlertNotice && !!alertNotices && alertNotices.fields.map((x, i) => {\r\n return (\r\n \r\n {renderAlertNotice(i, x)}\r\n \r\n {(!(isDetails && !isModal) && currentState !== VehicleMaintenanceStates.PERFORM) && \r\n setRemoveAlertNotice(i)} />\r\n }\r\n )\r\n })}\r\n
\r\n }\r\n\r\n {canShowMaintenanceQuestionArea() && \r\n \r\n }\r\n {canShowMaintenanceQuestionArea() && \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('responsibleId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n }\r\n {canShowMaintenanceQuestionArea() && \r\n \r\n \r\n {\r\n setValue('expectedDate', date);\r\n //setMaintenance(maintenance ? { ...maintenance, expectedDate: date } : null);\r\n }}\r\n dateSelected={maintenance && maintenance.expectedDate ? moment(maintenance.expectedDate).toDate() : undefined}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n dateCustomInput={} removeIconOrTextBorderRadius={true} />}\r\n dateName=\"expectedDate\"\r\n dateRequired={false}\r\n dateDisabled={(isDetails && !isModal) || currentState === VehicleMaintenanceStates.PERFORM}\r\n onTimeChoose={hour => { setValue('expectedHour', hour.formatted24) }}\r\n timePlaceholder={t('common.hour')}\r\n timeName=\"expectedHour\"\r\n timeDisabled={(isDetails && !isModal) || currentState === VehicleMaintenanceStates.PERFORM}\r\n />\r\n \r\n \r\n }\r\n\r\n\r\n {canShowAlertNotifications() && \r\n
\r\n \r\n {(!isDetails && currentState !== VehicleMaintenanceStates.PERFORM) && }\r\n
\r\n\r\n {plannedAlertNotices.fields.length === 0 &&
\r\n {t('maintenances.without_alert_notices')}\r\n
}\r\n\r\n {!!plannedAlertNoticeOptions && !!showPlannedAlertNotice && !!plannedAlertNotices && plannedAlertNotices.fields.map((x, i) => {\r\n return (\r\n \r\n {renderPlannedAlertNotice(i, x)}\r\n \r\n {(!(isDetails && !isModal) && currentState !== VehicleMaintenanceStates.PERFORM) && \r\n setRemovePlannedAlertNotice(i)} />\r\n }\r\n )\r\n })}\r\n
\r\n }\r\n
\r\n {renderButtons()}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {t('common.add_new_file')}}\r\n smallButtonAdd={true}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n setValue('notes', event.currentTarget.value.toString())}\r\n placeholder={t('common.notes')}\r\n rows={5}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n removeAlertNotice()}\r\n onNo={() => { setShowRemoveAlertNotice(false); setAlertNoticeToRemoveIndex(null) }}\r\n />\r\n\r\n removePlannedAlertNotice()}\r\n onNo={() => { setShowRemovePlannedAlertNotice(false); setPlannedAlertNoticeToRemoveIndex(null) }}\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\nexport default MaintenanceScreen;\r\n","import ListMaintenancesScreen from './components/MaintenanceList/ListMaintenancesScreen';\r\nimport { VehicleMaintenanceDto } from 'api/vehicleMaintenances/models/VehicleMaintenanceDto';\r\nimport MaintenanceScreen from '../carMaintenanceTab/components/MaintenanceScreen';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport styles from './CarMaintenanceTab.module.scss';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n MAINTENANCE = 'MAINTENANCE'\r\n}\r\n\r\ntype Props = {\r\n vehicle?: VehicleDto;\r\n onDeleteFromList: () => void;\r\n tourReRender: () => void;\r\n}\r\n\r\nconst CarMaintenanceTab = ({ vehicle, onDeleteFromList, tourReRender }: Props) => {\r\n const { vehicleId, tabId, itemId, itemType } = useParams<{ vehicleId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n
\r\n {(itemType??'list') === ScreenType.LIST.toString().toLowerCase() && <>\r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/new`);\r\n }}\r\n onClickItem={(item: VehicleMaintenanceDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n onDeleteFromList={onDeleteFromList}\r\n tourReRender={tourReRender}>\r\n \r\n }\r\n\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() &&\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/${state ? 'details' : 'edit'}/${itemId}`)}\r\n onSubmitDone={(id: string) => history.goBack()} //history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${id}`)}\r\n onBackList={() => history.goBack()}\r\n titleHeader={t('maintenances.title')}\r\n />\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CarMaintenanceTab;","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { AnnotationDto, CarVerificationListItemDto, RemoveItemViewModel } from './models/CarVerificationDto';\r\nimport { CarVerificationSearchCriteria, VerificationOverlapCriteria } from './models/CarVerificationSearchCriteria';\r\nimport { UpdateAnnotationsViewModel } from './models/AnnotationsViewModel';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { VerificationViewModel } from './models/VerificationViewModel';\r\nimport { VerificationCounterListDto, VerificationDto } from './models/VerificationDto';\r\n\r\nclass CarVerificationService {\r\n public getList(criteria: CarVerificationSearchCriteria) {\r\n return Http.get>('verification', criteria);\r\n }\r\n public getTop5verifications(criteria: CarVerificationSearchCriteria) {\r\n return Http.get('verification/get-top5-verifications', criteria);\r\n }\r\n \r\n public getById(id: string) {\r\n return Http.get('verification/' + id);\r\n }\r\n\r\n public getAnnotationsByVerificationId(criteria: CarVerificationSearchCriteria) {\r\n return Http.get('verification/get-annotations', criteria);\r\n }\r\n\r\n public create(model: VerificationViewModel, files: CustomFile[]) {\r\n return Http.postWithFile('verification', model, files);\r\n }\r\n\r\n public update(model: VerificationViewModel, files: CustomFile[]) {\r\n return Http.putWithFile('verification', model, files);\r\n }\r\n\r\n public remove(model: RemoveItemViewModel) {\r\n return Http.put('verification/deactivate', model);\r\n }\r\n\r\n public updateAnnotations(model: UpdateAnnotationsViewModel) {\r\n return Http.put('verification/annotations', model);\r\n }\r\n\r\n public removeAnnotation(model: RemoveItemViewModel) {\r\n return Http.put('verification/deactivateannotation', model);\r\n }\r\n\r\n public catalogZones() {\r\n return Http.get('verification/zonecatalog');\r\n }\r\n \r\n public getCountersList(criteria: CarVerificationSearchCriteria) {\r\n return Http.get('verification/counters-list', criteria);\r\n }\r\n\r\n public getDefaultKm(vehicleId: string) {\r\n return Http.get('verification/get-default-km/' + vehicleId);\r\n }\r\n \r\n public findOverlaps(criteria: VerificationOverlapCriteria) {\r\n\t\treturn Http.get('verification/find-overlaps', criteria);\r\n\t}\r\n\r\n}\r\n\r\nexport default new CarVerificationService();","export enum VerificationType {\r\n ROUTINE = 'ROUTINE',\r\n TRAVEL = 'TRAVEL',\r\n}","export enum AlertSubjectEnum {\r\n INFORMATION = 'INFORMATION',\r\n INTERVENTION = 'INTERVENTION',\r\n INTERVENTION_URGENT = 'INTERVENTION_URGENT',\r\n}\r\n\r\nexport enum AlertSubjectColorEnum {\r\n INTERVENTION = '#EAA32C',\r\n INFORMATION= '#56CF76',\r\n INTERVENTION_URGENT = '#DC4C4C'\r\n}","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\nimport styles from './VerificationFiltersScreen.module.scss';\r\nimport Button from '../../../../common/components/button/Button';\r\nimport FormItem from '../../../../common/components/formItem/FormItem';\r\nimport Label from '../../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../../common/types/SelectValueLabel';\r\nimport VehiclesService from '../../../../api/vehicles/VehiclesService';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport Utils from 'common/services/Utils';\r\nimport { VerificationType } from 'api/carVerification/enums/VerificationType';\r\nimport { AlertSubjectEnum } from 'api/alerts/enums/AlertSubjectEnum';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { removeAccents } from 'Config';\r\n\r\nexport interface Filters {\r\n vehicleId?: string;\r\n vehicleName?: string;\r\n type?: VerificationType;\r\n responsibleId?: string;\r\n responsibleName?: string;\r\n driverId?: string;\r\n driverName?: string;\r\n startDate?: Date;\r\n endDate?: Date;\r\n interventionType?: AlertSubjectEnum;\r\n page?:number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange?: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n genericFilter?: boolean;\r\n}\r\n\r\nconst VerificationFiltersScreen: React.FC = ({ filters, genericFilter = false, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { setValue, getValues } = form;\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n const [responsiblesOptions, setResponsibles] = useState([]);\r\n const [driversOptions, setDrivers] = useState([]);\r\n\r\n const typesOptions: SelectValueLabel[] = Utils.sortAlphabetically(Object.keys(VerificationType).map(type => {\r\n return { value: type, label: t(`car_verification.annotation_types.${type}`.toLowerCase() as any) }\r\n }));\r\n\r\n const interventionOptions: SelectValueLabel[] = Utils.sortAlphabetically(Object.keys(AlertSubjectEnum).map(interventionType => {\r\n return { value: interventionType, label: t(`car_verification.intervention_type.${interventionType}`.toLowerCase() as any) }\r\n }));\r\n\r\n const getData = async () => {\r\n const [vehiclesOptionsList, responsiblesOptionsList, driversList] = await Promise.all([\r\n VehiclesService.catalog(),\r\n UsersService.getAllForCompany(),\r\n DriversService.catalog(),\r\n ]);\r\n\r\n setVehicles(vehiclesOptionsList);\r\n setResponsibles((responsiblesOptionsList || []).map((x: UsersSelectItemDto) => ({ value: x.id || '', label: x.realName || '' })));\r\n setDrivers(driversList);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n startDate: undefined,\r\n endDate: undefined,\r\n responsibleId: undefined,\r\n responsibleName: undefined,\r\n vehicleId: undefined,\r\n vehicleName: undefined,\r\n type: undefined,\r\n driverId: undefined,\r\n driverName: undefined,\r\n interventionType: undefined\r\n\r\n });\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (_filters: Filters) => {\r\n onFilter(_filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n if (onChange) {\r\n onChange(form.getValues());\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {genericFilter && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('vehicleId', data?.value ?? null);\r\n setValue('vehicleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n }\r\n\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChange={() => onInputChange()}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('responsibleId', data?.value ?? null);\r\n setValue('responsibleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={responsiblesOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"responsibleId\"\r\n defaultValue={getValues('responsibleId')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('driverId', data?.value ?? null);\r\n setValue('driverName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={driversOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"driverId\"\r\n defaultValue={getValues('driverId')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getValues('startDate')}\r\n defaultEndValue={getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChange={() => onInputChange()}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VerificationFiltersScreen);","export default __webpack_public_path__ + \"static/media/drive.ef774479.svg\";","export default __webpack_public_path__ + \"static/media/i_verificaçoes_carro.e055919d.svg\";","export default __webpack_public_path__ + \"static/media/desktop_frais_carburant.0dac062e.svg\";","export default __webpack_public_path__ + \"static/media/play2.66c721b9.svg\";","export default __webpack_public_path__ + \"static/media/flag_bw.b752320e.svg\";","export default __webpack_public_path__ + \"static/media/hour-glass.be7b6841.svg\";","export default __webpack_public_path__ + \"static/media/calendar_v_routine.474a8b45.svg\";","export enum InterventionTypeEnum {\r\n INTERVENTION_URGENT = 'INTERVENTION_URGENT',\r\n INTERVENTION = 'INTERVENTION',\r\n INFORMATION = 'INFORMATION',\r\n}\r\n\r\nexport enum InterventionTypeColorEnum {\r\n INTERVENTION_URGENT = '#DC4C4C', //red\r\n INTERVENTION = '#1781A1', //yellow\r\n INFORMATION = '#E2B434', //blue\r\n}\r\n","import { InterventionTypeColorEnum, InterventionTypeEnum } from 'api/carVerification/enums/InterventionTypeEnum';\r\nimport colors from 'styles/export/colors.module.scss';\r\n\r\nexport const getInterventionTypeStatusColor = (type: InterventionTypeEnum) => {\r\n\treturn { textColor: colors.white, color: InterventionTypeColorEnum[type] };\r\n};\r\n","\r\nexport enum AlertType {\r\n VERIFICATION_NEW_ALERT = 'VERIFICATION_NEW_ALERT',\r\n ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT = 'ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT', \r\n ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT = 'ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT',\r\n ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT = 'ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT', \r\n MAINTENANCE_PLANNED_ALERT = 'MAINTENANCE_PLANNED_ALERT', \r\n MAINTENANCE_NEW_ALERT = 'MAINTENANCE_NEW_ALERT',\r\n RESERVATION_NEW_ALERT = 'RESERVATION_NEW_ALERT',\r\n EXPENSE_NEW_ALERT = 'EXPENSE_NEW_ALERT',\r\n EXPENSE_TREATED_ALERT = 'EXPENSE_TREATED_ALERT',\r\n EXPENSE_NOT_TREATED_ALERT = 'EXPENSE_NOT_TREATED_ALERT',\r\n EXPENSE_REFUND_APPROVED_ALERT = 'EXPENSE_REFUND_APPROVED_ALERT',\r\n EXPENSE_REFUND_REFUSED_ALERT = 'EXPENSE_REFUND_REFUSED_ALERT',\r\n CONTRACT_INSURANCE_ALERT = 'CONTRACT_INSURANCE_ALERT',\r\n CONTRACT_USE_ALERT = 'CONTRACT_USE_ALERT',\r\n CONTRACT_MAINTENANCE_ALERT = 'CONTRACT_MAINTENANCE_ALERT',\r\n REQUEST_VERIFICATION_NEW_ALERT = 'REQUEST_VERIFICATION_NEW_ALERT',\r\n}\r\n\r\nexport enum AlertTypeColorEnum {\r\n VERIFICATION_NEW_ALERT = '#56CF76',//green\r\n ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT = '#E2B434', //yellow \r\n ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT = '#1781A1',//blue\r\n ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT = '#DC4C4C',//red \r\n MAINTENANCE_PLANNED_ALERT = '#56CF76', \r\n MAINTENANCE_NEW_ALERT = '#56CF76',\r\n RESERVATION_NEW_ALERT = '#56CF76',\r\n EXPENSE_NEW_ALERT = '#56CF76',\r\n EXPENSE_TREATED_ALERT = '#56CF76',\r\n EXPENSE_NOT_TREATED_ALERT = '#56CF76',\r\n EXPENSE_REFUND_APPROVED_ALERT = '#56CF76',\r\n EXPENSE_REFUND_REFUSED_ALERT = '#56CF76',\r\n CONTRACT_INSURANCE_ALERT = '#56CF76',\r\n CONTRACT_USE_ALERT = '#56CF76',\r\n CONTRACT_MAINTENANCE_ALERT = '#56CF76',\r\n REQUEST_VERIFICATION_NEW_ALERT = '#1781A1' //todo\r\n}","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './RequestVerificationScreen.module.scss';\r\nimport Button from '../../../../common/components/button/Button';\r\nimport FormItem from '../../../../common/components/formItem/FormItem';\r\nimport Label from '../../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../../common/types/SelectValueLabel';\r\nimport { useForm } from 'react-hook-form';\r\nimport UsersService from 'api/users/UsersService';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport Loading from 'common/services/Loading';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport AlertsService from 'api/alerts/AlertsService';\r\nimport { AlertType } from 'api/alerts/enums/AlertType';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\n\r\nexport interface Form {\r\n vehicleId: string;\r\n userId?: string;\r\n userName?: string;\r\n}\r\n\r\ntype Props = {\r\n vehicleId: string;\r\n onCancel: () => void;\r\n}\r\n\r\nconst RequestVerificationScreen: React.FC = ({ vehicleId, onCancel }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm
({ shouldUnregister: false, shouldFocusError: true, defaultValues: { vehicleId } });\r\n const { register, handleSubmit, errors, watch, getValues, setValue } = form;\r\n const [usersOptions, setUsers] = useState([]);\r\n const [reRenderKey, setReRenderKey] = useState(new Date().getTime());\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [driver, usersList] = await Promise.all([\r\n VehiclesService.getCarCurrentDriver(vehicleId),\r\n UsersService.catalog(),\r\n ]);\r\n\r\n setUsers(usersList);\r\n\r\n if (driver) {\r\n const aux = usersList.find(x => x.value === driver.value);\r\n if (aux) {\r\n setValue('userId', aux.value);\r\n setValue('userName', aux.label);\r\n setReRenderKey(new Date().getTime());\r\n }\r\n }\r\n\r\n\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't load info on request verification modal`,\r\n error\r\n );\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const onSubmit = async (formData: Form) => {\r\n try {\r\n\r\n if (!formData.userId) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n\r\n await AlertsService.createAlert({\r\n vehicleId: formData.vehicleId,\r\n userId: formData.userId,\r\n communicationTypes: [\r\n AlertType.REQUEST_VERIFICATION_NEW_ALERT,\r\n 'REQUEST_VERIFICATION_NEW_EMAIL'\r\n ]\r\n });\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n onCancel();\r\n\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update request verification`,\r\n error\r\n );\r\n\r\n Loading.hide();\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('userId', data?.value);\r\n setValue('userName', data?.label);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default memo(RequestVerificationScreen);\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DATE_FORMAT_DEFAUT, DATE_TIME_FORMAT_DEFAULT, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './CarVerificationList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { CarVerificationListItemDto, RemoveItemViewModel } from 'api/carVerification/models/CarVerificationDto';\r\nimport { CarVerificationSearchCriteria } from 'api/carVerification/models/CarVerificationSearchCriteria';\r\nimport CarVerificationService from 'api/carVerification/CarVerificationService';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport VerificationFiltersScreen, { Filters } from 'screens/verification/components/list-filters/VerificationFiltersScreen';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport DriveIcon from 'assets/svg/drive.svg';\r\nimport VerificationsIcon from 'assets/svg/i_verificaçoes_carro.svg';\r\nimport CarburantIcon from 'assets/svg/desktop_frais_carburant.svg';\r\nimport PlayIcon from 'assets/svg/play2.svg';\r\nimport FlagBWIcon from 'assets/svg/flag_bw.svg';\r\nimport HourGlassIcon from 'assets/svg/hour-glass.svg';\r\nimport CalendarvIcon from 'assets/svg/calendar_v_routine.svg';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { VerificationType } from 'api/carVerification/enums/VerificationType';\r\nimport moment from 'moment';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { getInterventionTypeStatusColor } from 'common/utils/VerificationsUtils';\r\nimport { InterventionTypeEnum } from 'api/carVerification/enums/InterventionTypeEnum';\r\nimport RequestVerificationScreen from 'screens/verification/components/request-verification/RequestVerificationScreen';\r\nimport Button from 'common/components/button/Button';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\ntype Props = {\r\n criteria: CarVerificationSearchCriteria;\r\n updateCriteria: (criteria: CarVerificationSearchCriteria) => void;\r\n genericPage?: boolean;\r\n isVehicle?: boolean;\r\n editable: boolean;\r\n tourReRender?: () => void;\r\n};\r\n\r\nconst CarVerificationList: React.FC = ({ criteria, isVehicle, editable, genericPage = false, updateCriteria, tourReRender }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const { vehicleId, tabId } = useParams<{ vehicleId: string, itemType: string, itemId: string, tabId: string, type: string }>();\r\n const [carVerificationPage, setCarVerificationPage] = useState>();\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVerificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VERIFICATIONS_WRITE']);\r\n const hasRequestVerificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_REQUEST_VERIFICATIONS_WRITE']);\r\n const imageCacheKey = useRef(new Date().getTime());\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n let annotations: any[];\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n updateCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const renderDoubleRows = (row1: any, row2: any) => {\r\n return (\r\n
\r\n {row1}\r\n {row2}\r\n {!row1 && !row2 && '-'}\r\n
\r\n )\r\n }\r\n\r\n const renderDates = (row: CarVerificationListItemDto) => {\r\n const dateBegin = row.verificationDate ? moment(row.verificationDate).toDate() : null;\r\n if (dateBegin) {\r\n if (row.verificationHour && row.verificationHour.length > 0) {\r\n const splittedHoursMinutesStart = row.verificationHour.split(':');\r\n dateBegin.setHours(Number(splittedHoursMinutesStart[0] ?? 0));\r\n dateBegin.setMinutes(Number(splittedHoursMinutesStart[1] ?? 0));\r\n }\r\n }\r\n\r\n const dateEnd = row.verificationFinishDate ? moment(row.verificationFinishDate).toDate() : null;\r\n if (dateEnd && row.verificationFinishHour) {\r\n const splittedHoursMinutesEnd = row.verificationFinishHour.split(':');\r\n dateEnd.setHours(Number(splittedHoursMinutesEnd[0] ?? 0));\r\n dateEnd.setMinutes(Number(splittedHoursMinutesEnd[1] ?? 0));\r\n }\r\n\r\n return renderDoubleRows(\r\n dateBegin ? : null,\r\n row.type == VerificationType.TRAVEL.toString() && dateBegin && !dateEnd ? \r\n : row.type == VerificationType.TRAVEL.toString() && dateBegin && dateEnd ? \r\n : null)\r\n }\r\n\r\n const renderImageCell = (row: CarVerificationListItemDto) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderVehicleCell = (row: CarVerificationListItemDto) => {\r\n return (\r\n
\r\n
{row.registrationNumber}
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ? ' | ' : '') + (row.vehicleModelName ?? '')}
\r\n
\r\n )\r\n }\r\n\r\n const renderAnnotationsCell = (row: CarVerificationListItemDto) => {\r\n const vehicleImmobilizedTooltip = row.predictedDateEndImmobilization\r\n ? `${t('vehicles.stopped_until')} ${moment(row.predictedDateEndImmobilization).format(DATE_FORMAT_DEFAUT)}`\r\n : t('vehicles.no_date_end_immobilization');\r\n\r\n if (row) {\r\n annotations = ([\r\n { counter: row.numberAnnotationsUrgent, color: getInterventionTypeStatusColor(InterventionTypeEnum.INTERVENTION_URGENT).color },\r\n { counter: row.numberAnnotationsInformative, color: getInterventionTypeStatusColor(InterventionTypeEnum.INFORMATION).color },\r\n { counter: row.numberAnnotationsIntervention, color: getInterventionTypeStatusColor(InterventionTypeEnum.INTERVENTION).color }\r\n ])\r\n\r\n }\r\n return (\r\n
\r\n \r\n {!!annotations &&
\r\n {annotations.map((x, i) => {x.counter})}\r\n {row.immobilized &&
\r\n
\r\n
}\r\n
\r\n }\r\n \r\n
\r\n )\r\n }\r\n\r\n const renderTableActionCell = (\r\n row: CarVerificationListItemDto,\r\n ) => {\r\n const urlDetails = isVehicle ? `/vehicles/details/${vehicleId}/${tabId}/details/${row.id}` : `verifications/details/${row.id}`;\r\n const urlEdit = isVehicle ? `/vehicles/details/${vehicleId}/${tabId}/edit/${row.id}` : `verifications/edit/${row.id}`;\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasVerificationsWritePolicy && editable && \r\n {t('common.edit')}\r\n }\r\n {hasVerificationsWritePolicy && editable && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const showRemoveItemDialog = (item: CarVerificationListItemDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n setShowRemoveModal(false);\r\n Loading.show();\r\n await CarVerificationService.remove(itemToRemove as RemoveItemViewModel);\r\n updateCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n Loading.hide();\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete verification`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'type',\r\n name: t('car_verification.list.type'),\r\n renderCell: row => ,\r\n onSearch: onTableFilter,\r\n searchField: 'v.type'\r\n },\r\n {\r\n name: t('car_verification.list.responsible_date'),\r\n renderCell: row => renderDoubleRows(\r\n {row.responsibleName || '-'},\r\n ),\r\n onSearch: onTableFilter,\r\n searchField: 'responsible.real_name',\r\n hideOn: ['sm', 'md', 'lg'],\r\n },\r\n {\r\n name: t('car_verification.list.driver'),\r\n renderCell: row => {row.driverName || '-'},\r\n onSearch: onTableFilter,\r\n hideOn: ['sm', 'md', 'lg', 'xl'],\r\n searchField: 'driver.real_name'\r\n },\r\n {\r\n name: t('car_verification.list.dates_start_end'),\r\n renderCell: renderDates,\r\n onSearch: onTableFilter,\r\n hideOn: ['sm', 'md'],\r\n searchField: 'v.verification_date'\r\n },\r\n {\r\n name: t('car_verification.list.autonomy_km'),\r\n renderCell: row => renderDoubleRows(\r\n ,\r\n ),\r\n onSearch: onTableFilter,\r\n hideOn: ['sm', 'md', 'lg', 'xl', 'xxl'],\r\n searchField: 'v.autonomy',\r\n },\r\n {\r\n name: t('car_verification.list.annotations'),\r\n renderCell: renderAnnotationsCell,\r\n hideOn: ['sm', 'md', 'lg'],\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n }\r\n ];\r\n\r\n if (!vehicleId) {\r\n tableColumns.unshift({\r\n renderCell: renderImageCell,\r\n width: 90,\r\n hideOn: ['sm'],\r\n onlyImageColumn: true\r\n });\r\n }\r\n\r\n if (genericPage) {\r\n tableColumns.splice(1, 0, {\r\n field: 'registrationNumber',\r\n name: t('car_verification.vehicle'),\r\n cellStyle: { verticalAlign: 'baseline', textAlign: 'start' },\r\n onSearch: onTableFilter,\r\n renderCell: renderVehicleCell,\r\n searchField: 'vehicles.registration_number'\r\n });\r\n }\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await CarVerificationService.getList({ ...criteria, vehicleId: vehicleId ? vehicleId : criteria.vehicleId });\r\n setCarVerificationPage(page);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segments list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n finally{\r\n tourReRender && tourReRender();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n updateCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const updateTotalFilters = (_filters: Filters) => {\r\n let count = 0;\r\n if(_filters.driverId)count++;\r\n if(_filters.endDate)count++;\r\n if(_filters.interventionType)count++;\r\n if(_filters.responsibleId)count++;\r\n if(_filters.startDate)count++;\r\n if(_filters.type)count++;\r\n setFiltersTotal(count);\r\n }\r\n\r\n const onChangeFilters = (_filters: Filters) => {\r\n updateCriteria({ ...criteria, ..._filters });\r\n setFilters(_filters);\r\n updateTotalFilters(_filters);\r\n }\r\n\r\n const navigateToNew = () => {\r\n if (isVehicle) {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/new`);\r\n return;\r\n }\r\n if (genericPage) {\r\n history.push(`/verifications/new`);\r\n return;\r\n }\r\n }\r\n\r\n const navigateToItem = (row: CarVerificationListItemDto,e: any) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n\r\n if (isVehicle) {\r\n if (e.ctrlKey) {\r\n window.open(`/vehicles/details/${vehicleId}/${tabId}/details/${row.id}`, '_blank');\r\n return;\r\n }\r\n\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/details/${row.id}`);\r\n return;\r\n }\r\n if (genericPage) {\r\n\r\n if (e.ctrlKey) {\r\n window.open(`/verifications/details/${row.id}`, '_blank');\r\n return;\r\n }\r\n history.push(`/verifications/details/${row.id}`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n {!genericPage &&
\r\n
\r\n \r\n
\r\n
\r\n\r\n {hasRequestVerificationsWritePolicy &&\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => setIsPopoverOpen(false)}\r\n />}\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n <>\r\n setIsPopoverOpen(!isPopoverOpen)}\r\n preset={'success'}\r\n text={t('car_verification.list.new_request_verification')}\r\n data-tip={t('car_verification.list.new_request_verification_tooltip')}\r\n />\r\n \r\n \r\n )}\r\n }\r\n\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n />}\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasVerificationsWritePolicy && editable && navigateToNew()} />}\r\n
\r\n
}\r\n\r\n navigateToItem(row,e)}\r\n onHref={row => isVehicle ? `/vehicles/details/${vehicleId}/${tabId}/details/${row.id}` : `/verifications/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'v.verification_date', isOrderAsc: false }}\r\n />\r\n\r\n updateCriteria({ ...criteria, page })}\r\n />\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CarVerificationList;\r\n","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { DiagnosticTypesDto } from './models/DiagnosticTypesDto';\r\nimport { DiagnosticTypesSearchCriteria } from './models/DiagnosticTypesSearchCriteria';\r\nimport { CatalogDiagnosticTypesSearchCriteria } from 'api/catalog/models/CatalogDiagnosticTypesSearchCriteria';\r\n\r\nclass DiagnosticTypesService {\r\n public getList(criteria: DiagnosticTypesSearchCriteria) {\r\n return Http.get>('diagnostictypes', criteria);\r\n }\r\n\r\n public catalog(criteria?: CatalogDiagnosticTypesSearchCriteria) {\r\n return Http.get('diagnostictypes/catalog', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('diagnostictypes/' + id);\r\n }\r\n\r\n public create(model: DiagnosticTypesDto) {\r\n return Http.post('diagnostictypes', model);\r\n }\r\n\r\n public update(model: DiagnosticTypesDto) {\r\n return Http.put('diagnostictypes', model);\r\n }\r\n\r\n public remove(model: DiagnosticTypesDto) {\r\n return Http.put('diagnostictypes/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new DiagnosticTypesService();","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './InformationForm.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Label from 'common/components/label/Label';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { UseFormMethods, useWatch } from 'react-hook-form';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, removeAccents, SEGMENT_FEATURES } from 'Config';\r\nimport { VerificationType } from 'api/carVerification/enums/VerificationType';\r\nimport { VerificationViewModel } from 'api/carVerification/models/VerificationViewModel';\r\nimport Utils from 'common/services/Utils';\r\nimport { FaRegClock } from 'react-icons/fa';\r\nimport Timekeeper from 'react-timekeeper';\r\nimport dayjs from 'dayjs';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport InputInfoWarning from 'common/components/inputInfoWarning/InputInfoWarning';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n vehicles: SelectValueLabel[];\r\n vehicle?: VehicleDto;\r\n responsables: SelectValueLabel[];\r\n drivers: SelectValueLabel[];\r\n genericPage: boolean;\r\n isDetails: boolean;\r\n type: string;\r\n findOverlaps?: () => void;\r\n};\r\n\r\nconst InformationForm: React.FC = ({ form, vehicles, vehicle, responsables, drivers, genericPage, isDetails, type, findOverlaps }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { errors } = form;\r\n const [showTime, setShowTime] = useState(false);\r\n const [showTimeFinish, setShowTimeFinish] = useState(false);\r\n const [currentKmsGps, setCurrentKmsGps] = useState(null);\r\n\r\n const typeWatch = useWatch({ control: form.control, name: 'type' });\r\n const verificationFinishDateWatch = useWatch({ control: form.control, name: 'verificationFinishDate' });\r\n const [showKilometersFinish, setShowKilometersFinish] = useState(!!verificationFinishDateWatch);\r\n const [vehicleParam, setVehicleParam] = useState(vehicle);\r\n const [inputKmsBelowCurrentVehicleKms, setInputKmsBelowCurrentVehicleKms] = useState(false);\r\n const [typesOptions, setTypesOptions] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasReadGPSPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n const changeVehicle = (data: SelectValueLabel) => {\r\n const vId = data ? data.value : null;\r\n getVehicle(vId);\r\n }\r\n\r\n const getVehicle = async (id?: string | null) => {\r\n try {\r\n if (id) {\r\n const result = await VehiclesService.getById(id);\r\n if (result) {\r\n setVehicleParam(result);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get vehicle data`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getVehicleGpsCurrentKms = async () => {\r\n const vehicleAux = vehicle ? vehicle : vehicleParam ? vehicleParam : undefined;\r\n if (vehicleAux && vehicleAux.id && vehicleAux.companyTrackingProvider && vehicleAux?.companyTrackingProvider !== TrackingProvider.NONE && vehicleAux.trackingDeviceId) {\r\n try {\r\n\r\n const position = await TrackingService.getPosition(vehicleAux.id);\r\n if (position) {\r\n setCurrentKmsGps(position.km ?? null);\r\n }\r\n\r\n } catch (error) {\r\n setCurrentKmsGps(null)\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get vehicle gps current Kms`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n const compareKms = () => {\r\n if (vehicleParam && (form.watch('kilometers') ?? 0) < (vehicleParam?.currentKilometers ?? 0)) {\r\n setInputKmsBelowCurrentVehicleKms(true);\r\n return;\r\n }\r\n setInputKmsBelowCurrentVehicleKms(false);\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (vehicleParam?.segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n const typesList: SelectValueLabel[] = Utils.sortAlphabetically(Object.keys(VerificationType).map(type => { \r\n return { value: type, label: t(`car_verification.annotation_types.${type}`.toLowerCase() as any) }\r\n }));\r\n\r\n useEffect(() => {\r\n ((!isDetails && genericPage) || (!isDetails && !genericPage && type === 'edit')) && compareKms();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isDetails && (vehicle || vehicleParam)) {\r\n // current kms from tracking\r\n getVehicleGpsCurrentKms();\r\n \r\n }\r\n setTypesOptions(\r\n Utils.sortAlphabetically(\r\n showField(SEGMENT_FEATURES.KM) ? typesList : typesList.filter(x => x.value !== VerificationType.TRAVEL),\r\n ),\r\n );\r\n }, [vehicle, vehicleParam]);\r\n\r\n\r\n return (\r\n
\r\n \r\n {genericPage && \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n changeVehicle(data);\r\n }}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChange={(item?: any) => {\r\n if (!item || item?.value == VerificationType.TRAVEL) {\r\n form.setValue('annotationDate', null);\r\n form.setValue('predictedDateEndImmobilization', null);\r\n form.setValue('immobilized', false);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n {typeWatch === VerificationType.TRAVEL.toString() && \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTime &&\r\n
\r\n {\r\n setShowTime(false);\r\n form.setValue('verificationHour', `${result.hour > 9 ? result.hour : '0' + result.hour}:${result.minute > 9 ? result.minute : '0' + result.minute}`);\r\n }}\r\n />\r\n
\r\n }\r\n {!showTime &&\r\n }\r\n placeholder={t('common.hour')}\r\n name=\"verificationHour\"\r\n form={form}\r\n rules={{ required: typeWatch == VerificationType.TRAVEL }}\r\n disabled={isDetails}\r\n onClick={() => setShowTime(true)}\r\n isClearable={true}\r\n onKeyDown={({ nativeEvent }) => {\r\n if (nativeEvent.key) {\r\n nativeEvent.preventDefault();\r\n }\r\n }}\r\n />}\r\n \r\n
\r\n \r\n {((!isDetails || form.getValues('kilometers')) && showField(SEGMENT_FEATURES.KM)) ? \r\n \r\n \r\n compareKms()} />\r\n \r\n {((!isDetails && form.getValues('vehicleId')) || (!isDetails && vehicleParam)) && vehicleParam?.currentKilometers ? : null}\r\n {hasReadGPSPolicy && ((!isDetails && form.getValues('vehicleId')) || (!isDetails && vehicleParam)) && currentKmsGps != null && }\r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {typeWatch === VerificationType.TRAVEL.toString() && \r\n \r\n \r\n \r\n {\r\n if (!!date) {\r\n setShowKilometersFinish(true)\r\n }\r\n else {\r\n setShowKilometersFinish(false)\r\n }\r\n\r\n const currFinishHour = form.getValues('verificationFinishHour');\r\n if (currFinishHour) {\r\n const currFinishHourSplit = currFinishHour.split(':');\r\n if (currFinishHourSplit && date &&\r\n dayjs(date as Date).set('hour', Number(currFinishHourSplit[0]))\r\n .set('minute', Number(currFinishHourSplit[1]))\r\n .toDate() > new Date()\r\n ) {\r\n form.setValue('verificationFinishHour', '');\r\n }\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTimeFinish &&\r\n
\r\n {\r\n setShowTimeFinish(false);\r\n form.setValue('verificationFinishHour', `${result.hour > 9 ? result.hour : '0' + result.hour}:${result.minute > 9 ? result.minute : '0' + result.minute}`);\r\n }}\r\n disabledTimeRange={\r\n verificationFinishDateWatch && dayjs(verificationFinishDateWatch).isSame(new Date(), 'day')\r\n ? { from: dayjs().add(1, 'minute').format('HH:mm'), to: '00:00' }\r\n : undefined\r\n }\r\n />\r\n
\r\n }\r\n {!showTimeFinish &&\r\n }\r\n placeholder={t('common.hour')}\r\n name=\"verificationFinishHour\"\r\n form={form}\r\n rules={{ required: false }}\r\n disabled={isDetails || !verificationFinishDateWatch}\r\n onClick={() => setShowTimeFinish(true)}\r\n isClearable={true}\r\n onKeyDown={({ nativeEvent }) => {\r\n if (nativeEvent.key) {\r\n nativeEvent.preventDefault();\r\n }\r\n }}\r\n />}\r\n \r\n
\r\n \r\n {showKilometersFinish && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
}\r\n
\r\n );\r\n}\r\n\r\nexport default InformationForm;\r\n","import React, { ReactElement } from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport styles from './Modal.module.scss';\r\n\r\ntype Props = {\r\n children: ReactElement | ReactElement[];\r\n} & ReactModal.Props;\r\n\r\nconst Modal: React.FC = ({ children, ...props }: Props) => {\r\n\r\n const customStyles = {\r\n content: {\r\n ...(props.style?.content ? props.style.content : {}),\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n ...(props.style?.overlay ? props.style.overlay : {})\r\n },\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default Modal;\r\n","import { MediaItemDto } from 'api/common/models/MediaItemDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ReactPainter from 'react-painter';\r\nimport Button from '../button/Button';\r\nimport Modal from '../modal/Modal';\r\nimport styles from './ModalImageEditor.module.scss';\r\n\r\nconst width = 450;\r\nconst height = 450;\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n media: MediaItemDto;\r\n containerName: string;\r\n onSave: (media: MediaItemDto) => void;\r\n onCancel: () => void;\r\n disabled: boolean,\r\n};\r\n\r\nconst ModalImageEditor = ({ isOpen, media, containerName, onSave, onCancel, disabled }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const save = (b: Blob) => {\r\n const file: CustomFile = new File([b], media.fileName) as any;\r\n file.containerName = containerName;\r\n\r\n onSave({\r\n ...media,\r\n tempFile: file,\r\n });\r\n }\r\n\r\n return (\r\n \r\n
\r\n {!disabled && (\r\n
\r\n
{canvas}
\r\n
\r\n \r\n { e.preventDefault(); e.stopPropagation(); triggerSave(); }}\r\n />\r\n
\r\n
\r\n )}\r\n />}\r\n\r\n {disabled &&
\r\n \r\n\r\n
\r\n \r\n
\r\n
}\r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ModalImageEditor;\r\n","import CustomFile from 'common/models/CustomFile';\r\nimport { blobToBase64, MIMETYPES_IMAGE } from 'Config';\r\nimport React, { useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './HorizontalMediaSelector.module.scss';\r\nimport { FaCamera } from 'react-icons/fa';\r\nimport QuestionYesNo from '../questionYesNo/QuestionYesNo';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { MediaItemDto } from 'api/common/models/MediaItemDto';\r\nimport Utils from 'common/services/Utils';\r\nimport ModalImageEditor from '../modalImageEditor/ModalImageEditor';\r\n\r\nexport type Props = {\r\n container: string;\r\n onChange: (medias: MediaItemDto[]) => void;\r\n onRemove: (media: MediaItemDto) => void;\r\n medias: MediaItemDto[];\r\n isDetails?: boolean;\r\n noItemsText?: string;\r\n};\r\n\r\nconst HorizontalMediaSelector: React.FC = ({ container, onChange, onRemove, medias, isDetails = false, noItemsText }: Props) => {\r\n const { t } = useTranslation();\r\n const inputRef = useRef(null);\r\n const [selectedMedia, setSelectedMedia] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [showImageEdit, setShowImageEdit] = useState(false);\r\n\r\n const importFile = () => {\r\n if (isDetails) {\r\n return;\r\n }\r\n\r\n if (inputRef.current) {\r\n inputRef.current.click();\r\n }\r\n }\r\n\r\n const uploadFile = async (event: any) => {\r\n const m: MediaItemDto[] = [];\r\n for (let size = 0; size < event.target.files.length; size++) {\r\n const file: CustomFile = event.target.files[size];\r\n\r\n const fileUrl = await blobToBase64(file);\r\n // file.urlBase64 = fileUrl;\r\n file.containerName = container;\r\n\r\n m.push({\r\n tempFile: file,\r\n id: Utils.newGuid(),\r\n url: fileUrl,\r\n fileName: file.name,\r\n });\r\n }\r\n\r\n onChange([...medias, ...m]);\r\n }\r\n\r\n const removeMedia = (e: React.MouseEvent, media: MediaItemDto) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n setShowRemoveModal(true);\r\n setSelectedMedia(media);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setShowRemoveModal(false);\r\n setSelectedMedia(null);\r\n }\r\n\r\n const onRemoveDone = () => {\r\n setShowRemoveModal(false);\r\n\r\n if (selectedMedia) {\r\n const filteredMedias = [...medias.filter(x => x.id !== selectedMedia?.id)];\r\n onChange(filteredMedias);\r\n\r\n onRemove(selectedMedia);\r\n }\r\n\r\n setSelectedMedia(null);\r\n }\r\n\r\n const onClickMedia = (media: MediaItemDto) => {\r\n setSelectedMedia(media);\r\n setShowImageEdit(true);\r\n }\r\n\r\n const renderMedia = (media: MediaItemDto, index: number) => (\r\n onClickMedia(media)}\r\n >\r\n {!isDetails &&
\r\n removeMedia(e, media)} />\r\n
}\r\n
\r\n );\r\n\r\n const onCancelEditMedia = () => {\r\n setShowImageEdit(false);\r\n setSelectedMedia(null);\r\n }\r\n\r\n const onSaveEditMedia = async (media: MediaItemDto) => {\r\n setShowImageEdit(false);\r\n setSelectedMedia(null)\r\n\r\n if (!media.tempFile) {\r\n return;\r\n }\r\n\r\n const fileUrl = await blobToBase64(media.tempFile);\r\n\r\n onRemove(media);\r\n\r\n onChange(medias.map(m => {\r\n if (m.id === media.id) {\r\n return {\r\n ...m,\r\n id: Utils.newGuid(),\r\n tempFile: media.tempFile,\r\n url: fileUrl,\r\n };\r\n }\r\n return {\r\n ...m,\r\n id: m.id === media.id ? Utils.newGuid() : m.id,\r\n tempFile: m.id === media.id ? media.tempFile : m.tempFile,\r\n url: m.id === media.id ? fileUrl : m.url,\r\n };\r\n }));\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {!isDetails &&
\r\n \r\n
}\r\n {medias.map((media, index) => renderMedia(media, index))}\r\n {isDetails && medias.length === 0 && noItemsText &&
{noItemsText}
}\r\n
\r\n\r\n \r\n \r\n \r\n\r\n {selectedMedia && }\r\n
\r\n );\r\n}\r\n\r\nexport default HorizontalMediaSelector;\r\n","import { useRef } from 'react';\r\nimport { Controller, RegisterOptions, UseFormMethods } from 'react-hook-form';\r\nimport { Props as MediaProps } from './HorizontalMediaSelector';\r\nimport HorizontalMediaSelector from './HorizontalMediaSelector';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n rules?: Exclude;\r\n} & Omit;\r\n\r\nconst HorizontalMediaSelectorController = ({ form, name, rules, ...props }: Props) => {\r\n const ref = useRef(null);\r\n return (\r\n {\r\n return (\r\n {\r\n onChange(medias);\r\n }}\r\n medias={value}\r\n />\r\n );\r\n }}\r\n onFocus={() => (ref.current as any).input.focus()}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || []}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default HorizontalMediaSelectorController;\r\n","export enum AnnotationTypeEnum {\r\n EXTERIOR = 'EXTERIOR',\r\n INTERIOR = 'INTERIOR',\r\n PANEL = 'PANEL',\r\n}\r\n\r\nexport enum AnnotationStatusEnum {\r\n DONE = 'DONE',\r\n WAITING = 'WAITING'\r\n}\r\n\r\nexport enum AnnotationStatusColorEnum {\r\n DONE = '#16CCC3',\r\n WAITING = '#DC4C4C',\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './AnnotationsFormItem.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Label from 'common/components/label/Label';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { ArrayField, UseFormMethods, useWatch } from 'react-hook-form';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { removeAccents, DATE_TIME_FORMAT_DEFAULT } from 'Config';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport Utils from 'common/services/Utils';\r\nimport { InterventionTypeEnum } from 'api/carVerification/enums/InterventionTypeEnum';\r\nimport InputResizableController from 'common/components/input/InputResizableController';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport HorizontalMediaSelectorController from 'common/components/horizontalMediaSelector/HorizontalMediaSelectorController';\r\nimport { MediaItemDto } from 'api/common/models/MediaItemDto';\r\nimport { VerificationAnnotationViewModel, VerificationViewModel } from 'api/carVerification/models/VerificationViewModel';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\nimport { AnnotationStatusEnum } from 'api/carVerification/enums/AnnotationEnum';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport { getInterventionTypeStatusColor } from 'common/utils/VerificationsUtils';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\nconst interventionTypeStatus = Object.keys(InterventionTypeEnum).filter(key => isNaN(Number(key)));\r\nconst statusOption = Object.keys(AnnotationStatusEnum).filter(key => isNaN(Number(key)));\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails: boolean;\r\n annotationTypes: SelectValueLabel[];\r\n maintenances: SelectValueLabel[];\r\n onRemoveMedia: (media: MediaItemDto) => void;\r\n onRemoveClick: () => void;\r\n index: number;\r\n annotation: Partial>;\r\n onClickAddMaintenance: () => void;\r\n onTouch: (val: boolean) => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst AnnotationsFormItem: React.FC = ({\r\n form, isDetails, annotationTypes, maintenances, onRemoveMedia, onRemoveClick, index, annotation, onClickAddMaintenance, onTouch, ...props\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n const errors = (form.errors?.annotations || [])[index] || null;\r\n const statusWatch = useWatch({ control: form.control, name: `annotations[${index}].status` });\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleMaintenancesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_WRITE']);\r\n const hasAnnotationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ANNOTATIONS_WRITE']);\r\n const disabled = (isDetails || !hasAnnotationsWritePolicy);\r\n const [selectedStatus, setSelectedStatus] = useState('');\r\n\r\n const interventionTypeStatusList: SelectValueLabel[] = Utils.sortAlphabetically(interventionTypeStatus.map(intervention => {\r\n return { value: intervention, label: t(`car_verification.intervention_type.${intervention}`.toLowerCase() as any) }\r\n }));\r\n\r\n const statusOptionList: SelectValueLabel[] = Utils.sortAlphabetically(statusOption.map(a => {\r\n return { value: a, label: t(`car_verification.annotation_status.${a}`.toLowerCase() as any) }\r\n }));\r\n\r\n const renderStatusItem = (name: string, onClick: () => void, isSelected: boolean, key: number) => (\r\n {\r\n onTouch(true);\r\n onClick();\r\n }\r\n }\r\n >\r\n
\r\n
\r\n {name}\r\n
\r\n
\r\n
\r\n );\r\n\r\n const onSelectStatus = (type: any) => {\r\n if (type) {\r\n setSelectedStatus(type || null);\r\n form.setValue(`annotations[${index}].status`, type || null);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (form) {\r\n setSelectedStatus(form.getValues(`annotations[${index}].status`));\r\n }\r\n }, []);\r\n\r\n const toggleImmobilized = (index: number) => {\r\n if (form) {\r\n form.setValue(`annotations[${index}].predictedDateEndImmobilization`, null);\r\n }\r\n };\r\n\r\n const renderForm = () => <>\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n toggleImmobilized(index)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n return (\r\n <>\r\n {!isDetails && \r\n {renderForm()}\r\n\r\n {hasAnnotationsWritePolicy &&
\r\n \r\n
}\r\n
}\r\n\r\n {isDetails && \r\n \r\n \r\n \r\n \r\n \r\n {annotation.date && }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {annotation.intervention && }\r\n {annotation.status && annotation.intervention !== InterventionTypeEnum.INFORMATION && \r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {renderForm()}\r\n
\r\n\r\n {annotation.intervention !== InterventionTypeEnum.INFORMATION && hasAnnotationsWritePolicy && <>\r\n \r\n \r\n
\r\n \r\n
\r\n {statusOptionList.map((c, i) => {\r\n const isSelected = c.value === selectedStatus ? true : false;\r\n const label = c ? c.label : '';\r\n return renderStatusItem(label, () => onSelectStatus(c.value), isSelected, i);\r\n })}\r\n
\r\n
\r\n \r\n\r\n {statusWatch === AnnotationStatusEnum.DONE && <>\r\n \r\n \r\n onTouch(true)}\r\n disabled={statusWatch !== AnnotationStatusEnum.DONE}\r\n />\r\n \r\n \r\n \r\n \r\n onTouch(true)}\r\n filterOption={(candidate: any, input: any) => input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n }\r\n
\r\n }\r\n
}\r\n \r\n\r\n );\r\n}\r\n\r\nexport default AnnotationsFormItem;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './AnnotationsForm.module.scss';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { useFieldArray, UseFormMethods } from 'react-hook-form';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport AnnotationsFormItem from '../annotationsFormItem/AnnotationsFormItem';\r\nimport { MediaItemDto } from 'api/common/models/MediaItemDto';\r\nimport { VerificationAnnotationViewModel, VerificationViewModel } from 'api/carVerification/models/VerificationViewModel';\r\nimport { InterventionTypeEnum } from 'api/carVerification/enums/InterventionTypeEnum';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails: boolean;\r\n annotationTypes: SelectValueLabel[];\r\n maintenances: SelectValueLabel[];\r\n onRemoveMedia: (media: MediaItemDto) => void;\r\n onRemoveAnnotation: (id: string) => void;\r\n onClickAddMaintenance: (annotationIndex: number) => void;\r\n onTouch: (val: boolean) => void;\r\n};\r\n\r\nconst AnnotationsForm: React.FC = ({ form, isDetails, annotationTypes, maintenances, onRemoveMedia, onRemoveAnnotation, onClickAddMaintenance, onTouch }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const annotations = useFieldArray({ control: form.control, name: 'annotations', keyName: 'formId' as any });\r\n const [showRemoveAnnotation, setShowRemoveAnnotation] = useState(false);\r\n const [annotationToRemoveIndex, setAnnotationToRemoveIndex] = useState(null);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasAnnotationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ANNOTATIONS_WRITE']);\r\n\r\n const addAnnotation = () => {\r\n annotations.append({\r\n id: null,\r\n description: '',\r\n intervention: InterventionTypeEnum.INFORMATION,\r\n status: null,\r\n medias: [],\r\n index: annotations.fields.length\r\n });\r\n }\r\n\r\n const removeItem = () => {\r\n if (annotationToRemoveIndex === null) return;\r\n\r\n if (annotations.fields[annotationToRemoveIndex]?.id) {\r\n onRemoveAnnotation(annotations.fields[annotationToRemoveIndex].id!);\r\n }\r\n\r\n annotations.remove(annotationToRemoveIndex);\r\n\r\n setShowRemoveAnnotation(false);\r\n }\r\n\r\n const setRemoveItem = (index: number) => {\r\n setShowRemoveAnnotation(true);\r\n setAnnotationToRemoveIndex(index);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
{annotations.fields.length} {t('car_verification.annotations')}
\r\n {!isDetails && hasAnnotationsWritePolicy &&
\r\n \r\n {t('car_verification.verification.add_annotation')}\r\n \r\n \r\n
}\r\n
\r\n\r\n {annotations.fields.length === 0 &&
\r\n {t('car_verification.verification.without_annotations')}\r\n
}\r\n\r\n {annotations.fields.length > 0 &&
\r\n {annotations.fields.map((annotation, index) => {\r\n return (\r\n {\r\n setRemoveItem(index);\r\n }}\r\n index={index}\r\n annotation={annotation}\r\n onClickAddMaintenance={() => onClickAddMaintenance(index)}\r\n onTouch={onTouch}\r\n />\r\n );\r\n })}\r\n
}\r\n\r\n removeItem()}\r\n onNo={() => { setShowRemoveAnnotation(false); setAnnotationToRemoveIndex(null) }}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default AnnotationsForm;\r\n","import React from 'react';\r\nimport Modal from 'react-modal';\r\nimport styles from './AddMaintenanceModal.module.scss';\r\nimport MaintenanceScreen from 'screens/vehicle/components/carMaintenanceTab/components/MaintenanceScreen';\r\n\r\ntype Props = {\r\n isVisible: boolean;\r\n onSave: (id: string) => void;\r\n onCancel: () => void;\r\n vehicleId: string | null;\r\n};\r\n\r\nconst AddMaintenanceModal: React.FC = ({ isVisible, onSave, onCancel, vehicleId }: Props) => {\r\n const customStyles = {\r\n content: {\r\n top: '15%',\r\n left: '15%',\r\n right: '15%',\r\n bottom: '15%',\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n overflow: 'hidden',\r\n padding: '0'\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n //do nothing\r\n }}\r\n onSubmitDone={onSave}\r\n vehicleId={vehicleId}\r\n isModal\r\n titleHeader={undefined}\r\n />\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default AddMaintenanceModal;\r\n","import React from 'react';\r\nimport Modal from 'react-modal';\r\nimport styles from './VerificationExistModal.module.scss';\r\nimport { VerificationOverlap } from '../CarVerification';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from 'common/components/button/Button';\r\nimport { useSelector } from 'react-redux';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n isVisible: boolean;\r\n item?: VerificationOverlap | null;\r\n onCancel: () => void;\r\n onFinish?: () => void;\r\n};\r\n\r\nconst VerificationExistModal: React.FC = ({ isVisible, item, onCancel, onFinish }: Props) => {\r\n\r\n const { t } = useTranslation();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n \r\n const customStyles = {\r\n content: {\r\n top: '30%',\r\n left: '35%',\r\n right: '35%',\r\n bottom: 'auto',\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\r\n }\r\n };\r\n\r\n return (\r\n \r\n\r\n
{t('common.warning_title')}
\r\n\r\n
\r\n
\r\n {onFinish && (item?.driverId == userProfile?.id || item?.responsableId == userProfile?.id) ?\r\n t('car_verification.verification_vehicle_exist_message', { registrationNumber: item?.vehicleRegistrationNumber })\r\n :\r\n t('car_verification.verification_exist_message')}\r\n
\r\n
\r\n\r\n
\r\n \r\n {onFinish && (item?.driverId == userProfile?.id || item?.responsableId == userProfile?.id) && (\r\n \r\n )}\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default VerificationExistModal;","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './CarVerification.module.scss';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport { RemoveItemViewModel } from 'api/carVerification/models/CarVerificationDto';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport Button from 'common/components/button/Button';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { useForm } from 'react-hook-form';\r\nimport UserService from 'api/users/UsersService'\r\nimport CarVerificationService from 'api/carVerification/CarVerificationService';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport DiagnosticTypesService from 'api/diagnosticTypes/DiagnosticTypesService';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { updateTotals } from 'store/alerts/action';\r\nimport Logger from 'common/services/Logger';\r\nimport InformationForm from './informationForm/InformationForm';\r\nimport AnnotationsForm from './annotationsForm/AnnotationsForm';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { MediaItemDto } from 'api/common/models/MediaItemDto';\r\nimport { VerificationViewModel } from 'api/carVerification/models/VerificationViewModel';\r\nimport VehicleMaintenancesService from 'api/vehicleMaintenances/VehicleMaintenancesService';\r\nimport AddMaintenanceModal from './addMaintenanceModal/AddMaintenanceModal';\r\nimport { UpdateAnnotationsViewModel } from 'api/carVerification/models/AnnotationsViewModel';\r\nimport { AnnotationStatusEnum } from 'api/carVerification/enums/AnnotationEnum';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { Reducers } from 'store/types';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\nimport { VerificationDto } from 'api/carVerification/models/VerificationDto';\r\nimport { useHistory } from 'react-router-dom';\r\nimport VerificationExistModal from './verificationExistModal/VerificationExistModal';\r\nimport { VerificationOverlapCriteria } from 'api/carVerification/models/CarVerificationSearchCriteria';\r\nimport { VerificationType } from 'api/carVerification/enums/VerificationType';\r\nimport Utils from 'common/services/Utils';\r\n\r\nexport type VerificationOverlap = {\r\n vehicleId: string;\r\n vehicleRegistrationNumber: string;\r\n verificationId: string;\r\n responsableId: string;\r\n driverId: string;\r\n};\r\n\r\ntype Props = {\r\n goToEdit: (id: string) => void;\r\n genericPage?: boolean;\r\n type: 'details' | 'new' | 'edit' | 'list';\r\n vehicleId: string | null;\r\n verificationId: string | null;\r\n editable: boolean;\r\n};\r\n\r\nconst CarVerification = ({ goToEdit, genericPage = false, type, vehicleId: propVehicleId, verificationId, editable }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const isDetails = type === 'details';\r\n const form = useForm({ shouldUnregister: false, defaultValues: { annotations: [] } });\r\n const { setValue, reset } = form;\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [annotationTypes, setAnnotationTypes] = useState([]);\r\n const [responsables, setResponsables] = useState([]);\r\n const [drivers, setDrivers] = useState([]);\r\n const [maintenances, setMaintenances] = useState([]);\r\n const [vehicles, setVehicles] = useState([]);\r\n const [formReady, setFormReady] = useState(false);\r\n const [mediasIdsToRemove, setMediasIdsToRemove] = useState([]);\r\n const [annotationsIdsToRemove, setAnnotationsIdsToRemove] = useState([]);\r\n const [showAddMaintenanceModal, setShowAddMaintenanceModal] = useState(false);\r\n const addMaintenanceAnnotationIndex = useRef(null);\r\n const [hasAnyAnnotationDone, setHasAnyAnnotationDone] = useState(false);\r\n const [detailsFormTouched, setDetailsFormTouched] = useState(false);\r\n const [vehicleId, setVehicleId] = useState(propVehicleId);\r\n const [vehicle, setVehicle] = useState();\r\n //const [showKmWarning, setShowKmWarning] = useState(false);\r\n const [verification, setVerification] = useState(null);\r\n const [disableButtonSubmit, setDisableButtonSubmit] = useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVerificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VERIFICATIONS_WRITE']);\r\n\r\n const [isVerificationExistModalOpen, setIsVerificationExistModalOpen] = useState(false);\r\n const [verificationOverlap, setVerificationOverlap] = useState();\r\n\r\n const criteriaOverlap: VerificationOverlapCriteria = {\r\n companyId: userProfile?.companyId,\r\n vehicleId: vehicleId ?? undefined,\r\n driverId: (!verification || !verification.driverId) && userProfile ? userProfile.id : verification?.driverId ? verification.driverId : undefined,\r\n excludeItem: undefined\r\n };\r\n\r\n const goBack = () => history.goBack();\r\n\r\n const findOverlaps = async (excludeGuid: string | undefined = undefined) => {\r\n try {\r\n //Loading.show();\r\n criteriaOverlap.excludeItem = excludeGuid;\r\n await CarVerificationService.findOverlaps(criteriaOverlap);\r\n //Loading.hide();\r\n return true;\r\n } catch (error: any) {\r\n if (\r\n error?.response?.status === 409 &&\r\n error.response?.data?.error &&\r\n error.response?.data?.error === 'ERROR_VERIFICATION_OVERLAP'\r\n ) {\r\n setVerificationOverlap({\r\n vehicleId: error.response?.data.vehicleId,\r\n verificationId: error.response?.data.verificationId,\r\n vehicleRegistrationNumber: error.response?.data.vehicleRegistrationNumber,\r\n responsableId: error.response?.data.responsableId,\r\n driverId: error.response?.data.driverId\r\n });\r\n setIsVerificationExistModalOpen(true);\r\n Loading.hide();\r\n } else {\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get verification overlaps`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n setFormReady(false);\r\n setDetailsFormTouched(false);\r\n\r\n const [responsableList, annotationTypeList, driversList] = await Promise.all([\r\n UserService.catalog(),\r\n DiagnosticTypesService.catalog(),\r\n DriversService.catalog()\r\n ]);\r\n\r\n setResponsables(responsableList);\r\n setAnnotationTypes(annotationTypeList);\r\n setDrivers(driversList);\r\n\r\n let vehicleIdVerified = vehicleId ?? '';\r\n if (verificationId) {\r\n const result = await CarVerificationService.getById(verificationId);\r\n result.verificationDate = new Date(result.verificationDate);\r\n result.verificationFinishDate = !!result.verificationFinishDate ? new Date(result.verificationFinishDate) : result.verificationFinishDate;\r\n result.annotations = (result.annotations || []).map(annotation => ({\r\n ...annotation,\r\n doneDate: annotation.doneDate ? new Date(annotation.doneDate) : null,\r\n annotationDate: annotation.annotationDate ? new Date(annotation.annotationDate) : null,\r\n predictedDateEndImmobilization: annotation.predictedDateEndImmobilization ? new Date(annotation.predictedDateEndImmobilization) : null\r\n }));\r\n\r\n const maintenancesList = await VehicleMaintenancesService.catalogWithDate({ vehicleId: result.vehicleId });\r\n setMaintenances(maintenancesList);\r\n\r\n const anyAnnotationsDone = Boolean(result.annotations.find(a => a.status === AnnotationStatusEnum.DONE));\r\n if (anyAnnotationsDone && type === 'edit') {\r\n Loading.hide();\r\n goBack();\r\n return;\r\n }\r\n setHasAnyAnnotationDone(anyAnnotationsDone);\r\n\r\n vehicleIdVerified = !vehicleIdVerified ? (result.vehicleId ?? '') : vehicleIdVerified;\r\n setVehicleId(result.vehicleId);\r\n\r\n if (type === 'edit') {\r\n setDisableButtonSubmit(false);\r\n }\r\n\r\n form.reset(result);\r\n setVerification(result);\r\n }\r\n else {\r\n\r\n setValue('verificationDate', new Date());\r\n setValue('kilometers', vehicle?.currentKilometers);\r\n }\r\n\r\n if (genericPage) {\r\n const vehicleList = await VehiclesService.catalog();\r\n setVehicles(vehicleList);\r\n }\r\n\r\n if (!Utils.isStringNullOrEmpty(vehicleIdVerified)) {\r\n const _vehicle = await VehiclesService.getById(vehicleIdVerified!);\r\n setVehicle(_vehicle);\r\n }\r\n\r\n setFormReady(true);\r\n\r\n Loading.hide();\r\n } catch (error: any) {\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get verification informations`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const refreshMaintenances = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const formVehicleId = form.getValues('vehicleId');\r\n const maintenanceList = await VehicleMaintenancesService.catalogWithDate({ vehicleId: formVehicleId });\r\n setMaintenances(maintenanceList);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get verification informations`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const onSubmit = async (model: VerificationViewModel) => {\r\n Loading.show();\r\n\r\n //Validação de kms no primeiro clique\r\n /*if (!showKmWarning && model.kilometers < (vehicle?.currentKilometers || 0)) {\r\n setShowKmWarning(true);\r\n addToast(t('car_verification.warning_km'), { appearance: 'warning' });\r\n return;\r\n }*/\r\n\r\n if (model.type == VerificationType.TRAVEL && model.kilometersFinish && model.kilometers > model.kilometersFinish) {\r\n addToast(t('car_verification.warning_km_start_and_finish'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n setDisableButtonSubmit(true);\r\n try {\r\n // Update annotations\r\n if (model.id && isDetails) {\r\n const tempModel: UpdateAnnotationsViewModel = {\r\n verificationId: model.id,\r\n annotations: model.annotations.map(annotation => ({\r\n annotationId: annotation.id || '',\r\n annotationStatus: annotation.status ?? AnnotationStatusEnum.WAITING.toString(),\r\n maintenanceIds: annotation.maintenanceIds,\r\n doneDate: annotation.doneDate,\r\n })),\r\n };\r\n await CarVerificationService.updateAnnotations(tempModel);\r\n await getData();\r\n setDisableButtonSubmit(false);\r\n } else {\r\n const tempModel = { ...model, mediasIdsToRemove, annotationsIdsToRemove };\r\n const medias: CustomFile[] = [];\r\n \r\n if(!tempModel.autonomy){\r\n tempModel.autonomy = 0;\r\n }\r\n\r\n for (let i = 0; i < tempModel.annotations.length; i++) {\r\n tempModel.annotations[i].index = i;\r\n\r\n for (const media of tempModel.annotations[i].medias) {\r\n if (media.tempFile) {\r\n medias.push(media.tempFile);\r\n\r\n media.tempFile = null;\r\n media.url = '';\r\n }\r\n }\r\n }\r\n\r\n if (!genericPage && vehicleId) {\r\n tempModel.vehicleId = vehicleId;\r\n }\r\n\r\n criteriaOverlap.vehicleId = tempModel.vehicleId ?? undefined;\r\n criteriaOverlap.driverId = tempModel.driverId ?? undefined;\r\n\r\n let canSave = false;\r\n if(form.getValues('type') == VerificationType.TRAVEL){\r\n // tempModel.driverId = model.responsibleId;\r\n canSave = await findOverlaps(model.id);\r\n } else {\r\n canSave = true;\r\n }\r\n\r\n if(canSave)\r\n {\r\n // Update\r\n if (model.id) {\r\n await CarVerificationService.update(tempModel, medias);\r\n }\r\n // Create\r\n else {\r\n await CarVerificationService.create(tempModel, medias);\r\n }\r\n Loading.hide();\r\n goBack()\r\n dispatch(updateTotals());\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n }else{\r\n Loading.hide();\r\n setDisableButtonSubmit(false);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n if (error?.response?.status === 409 && error.response?.data?.error && error.response?.data?.error == 'ERROR_VERIFICATION_OVERLAP') {\r\n addToast(t('car_verification.verification.ERROR_VERIFICATION_OVERLAP'), { appearance: 'warning' });\r\n } else {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't save verification informations`, error);\r\n setDisableButtonSubmit(false);\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const removeItem = async () => {\r\n if (!verificationId) {\r\n return;\r\n }\r\n\r\n const model: RemoveItemViewModel = { id: verificationId };\r\n\r\n try {\r\n setShowRemoveModal(false);\r\n Loading.show();\r\n await CarVerificationService.remove(model);\r\n dispatch(updateTotals());\r\n Loading.hide();\r\n goBack();\r\n } catch (err) {\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't delete verification`, err);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onError = async () => {\r\n addToast(t('common.errors.required_fields_empty'), { appearance: 'warning' });\r\n };\r\n\r\n const onRemoveMedia = (media: MediaItemDto) => {\r\n if (media.id) {\r\n setMediasIdsToRemove([...mediasIdsToRemove, media.id]);\r\n }\r\n }\r\n\r\n const onRemoveAnnotation = (id: string) => {\r\n if (id) {\r\n setAnnotationsIdsToRemove([...annotationsIdsToRemove, id]);\r\n }\r\n }\r\n\r\n const onClickAddMaintenance = (annotationIndex: number) => {\r\n addMaintenanceAnnotationIndex.current = annotationIndex;\r\n setShowAddMaintenanceModal(true);\r\n }\r\n\r\n const onSaveMaintenance = async (id: string) => {\r\n setShowAddMaintenanceModal(false);\r\n\r\n if (addMaintenanceAnnotationIndex.current !== null) {\r\n const name = `annotations[${addMaintenanceAnnotationIndex.current}].maintenanceIds`;\r\n form.setValue(name, [...form.getValues(name), id]);\r\n }\r\n addMaintenanceAnnotationIndex.current = null;\r\n\r\n await refreshMaintenances();\r\n }\r\n\r\n const onCancelMaintenance = () => {\r\n setShowAddMaintenanceModal(false);\r\n addMaintenanceAnnotationIndex.current = null;\r\n }\r\n\r\n const goToVerification = (vehicleId?: string, verificationId?: string) => {\r\n history.push(`/vehicles/details/${vehicleId}/verifications/edit/${verificationId}`);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [type, propVehicleId]);\r\n\r\n return (\r\n
\r\n {
\r\n
{ if (verification) reset(verification); goBack(); }} >\r\n \r\n \r\n {type === 'new' && t('car_verification.titles.new')}\r\n {type === 'details' && t('car_verification.titles.details')}\r\n {type === 'edit' && t('car_verification.titles.edit')}\r\n\r\n {(Boolean(verification) && !verification?.active) &&\r\n {' - ' + t('car_verification.verification_deleted')}\r\n }\r\n \r\n\r\n
\r\n
}\r\n\r\n {formReady &&
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n\r\n }\r\n\r\n removeItem()}\r\n onNo={() => { setShowRemoveModal(false); }}\r\n />\r\n\r\n {showAddMaintenanceModal && }\r\n\r\n {\r\n setIsVerificationExistModalOpen(false);\r\n goToVerification(verificationOverlap?.vehicleId, verificationOverlap?.verificationId);\r\n }}\r\n onCancel={() => {\r\n setIsVerificationExistModalOpen(false);\r\n }}\r\n />\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default CarVerification;\r\n","import React, { useState } from 'react';\r\nimport CarVerificationList from './components/carVerificationList/CarVerificationList';\r\nimport CarVerification from './components/carVerification/CarVerification';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { CarVerificationSearchCriteria } from 'api/carVerification/models/CarVerificationSearchCriteria';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE } from 'Config';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\n\r\ntype RouteParams = {\r\n vehicleId: string;\r\n itemType: 'list' | 'details' | 'edit' | 'new';\r\n itemId: string;\r\n tabId: string;\r\n type: 'details' | 'edit' | 'new';\r\n}\r\n\r\ntype Props = {\r\n vehicle?: VehicleDto;\r\n tourReRender: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst CarVerificationTab: React.FC = ({ vehicle, tourReRender }: Props) => {\r\n const { vehicleId, itemType, itemId, tabId } = useParams();\r\n const history = useHistory();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.created_date',\r\n orderBy: 'desc',\r\n vehicleId: vehicleId \r\n });\r\n\r\n return (\r\n
\r\n {\r\n (itemType??'list') === 'list' \r\n ? \r\n : history.push(`/vehicles/details/${vehicleId}/${tabId}/edit/${id}`)}\r\n type={itemType}\r\n editable={vehicle!= undefined && vehicle.active}\r\n vehicleId={vehicleId}\r\n verificationId={itemId}\r\n />\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default CarVerificationTab;\r\n","import CustomFile from 'common/models/CustomFile';\r\nimport Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { AccidentDto } from './models/AccidentDto';\r\nimport { AccidentsSearchCriteria } from './models/AccidentsSearchCriteria';\r\n\r\nclass AccidentsService {\r\n\r\n public getList(criteria: AccidentsSearchCriteria) {\r\n return Http.get>('accidents', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('accidents/' + id);\r\n }\r\n\r\n public create(model: AccidentDto, attachment?: CustomFile[]) {\r\n return Http.postWithFile('accidents', model, attachment ?? []);\r\n }\r\n\r\n public update(model: AccidentDto, attachment?: CustomFile[]) {\r\n return Http.putWithFile('accidents', model, attachment ?? []);\r\n }\r\n\r\n public remove(model: AccidentDto) {\r\n return Http.put('accidents/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new AccidentsService();","import AccidentsService from 'api/accidents/AccidentsService';\r\nimport { AccidentDto } from 'api/accidents/models/AccidentDto';\r\nimport { CatalogDriversSearchCriteria } from 'api/catalog/models/CatalogDriversSearchCriteria';\r\nimport { CatalogInsuranceContractsSearchCriteria } from 'api/catalog/models/CatalogInsuranceContractsSearchCriteria';\r\nimport InsuranceContractsService from 'api/contracts/insuranceContract/InsuranceContractsService';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport Label from 'common/components/label/Label';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport InputResizable from 'common/components/input/InputResizable';\r\nimport DateWithHour from 'common/components/dateWithHour/DateWithHour';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { BLAMING_COLORS, DATE_FORMAT_DEFAUT, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport styles from './AccidentScreen.module.scss';\r\nimport Utils from 'common/services/Utils';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport colors from 'styles/export/colors.module.scss';\r\n\r\nexport type Props = {\r\n isDetails: boolean;\r\n onBackList: () => void;\r\n onItemDetails: (state: boolean) => void;\r\n isDriver?: boolean;\r\n isVehicle?: boolean;\r\n editable: boolean;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst AccidentScreen = ({ isDetails, editable, onBackList, onItemDetails, isDriver, isVehicle, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n // eslint-disable-next-line\r\n let { vehicleId, type, tabId, itemId, itemType } = useParams<{ vehicleId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n const history = useHistory();\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, watch, setValue, getValues, control, errors, reset } = form;\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [accident, setAccident] = useState(null);\r\n\r\n const [contractNumbersOptions, setContractNumbersOptions] = useState([]);\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n\r\n const [savedFiles, setSavedFiles] = useState([]);\r\n const [vehicleSegmentFeatures,setVehicleSegmentFeatures] = useState([])\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasAccidentsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ACCIDENTS_WRITE']);\r\n\r\n const [selectedInsuranceIncluded, setSelectedInsuranceIncluded] = useState(false);\r\n\r\n const getData = async (id?: string) => {\r\n setValue('attachmentsToRemove', []);\r\n try {\r\n Loading.show();\r\n if (isVehicle && Utils.isStringNullOrEmpty(vehicleId)) {\r\n throw Error('vehicleId doesnt exist');\r\n }\r\n setValue('vehicleId', vehicleId);\r\n\r\n const _vehicleSegmentFeatures = await VehiclesService.getVehicleSegmentFeatures(vehicleId)\r\n setVehicleSegmentFeatures(_vehicleSegmentFeatures)\r\n \r\n if (itemId) {\r\n const result = await AccidentsService.getById(itemId);\r\n if (result === undefined) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get the accident with id: ${itemId}`);\r\n onBackList();\r\n }\r\n setValues(result);\r\n } else {\r\n setValue('guilty', false);\r\n setValue('insuranceAssumedCost', false);\r\n getInsuranceContractsByDate(itemType === 'details');\r\n getDrivers(itemType === 'details');\r\n }\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get information to create accident`, error);\r\n Loading.hide();\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getDrivers = async (isDetails: boolean, id?: string | null) => {\r\n try {\r\n Loading.show();\r\n\r\n const drivers = await DriversService.catalog({ id: (isDetails ? id : null) } as CatalogDriversSearchCriteria);\r\n if (id) {\r\n const exists = drivers.find(x => x.value === id);\r\n if (!exists) { setValue('driverId', null); }\r\n }\r\n setDriversOptions(drivers);\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get drivers`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getInsuranceContractsByDate = async (isDetails: boolean, date?: Date, id?: string | null) => {\r\n try {\r\n Loading.show();\r\n\r\n const crit = isDetails ? { id: id } : { vehicleId: vehicleId, endDate: date };\r\n const contractNumbers = await InsuranceContractsService.catalog(crit as CatalogInsuranceContractsSearchCriteria);\r\n if (id) {\r\n const exists = contractNumbers.find(x => x.value === id);\r\n if (!exists) { setValue('insuranceContractId', null); }\r\n }\r\n setContractNumbersOptions(contractNumbers);\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get insurance contracts`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const setValues = (values: AccidentDto) => {\r\n setValue('id', values.id);\r\n\r\n setValue('vehicleId', values.vehicleId);\r\n const driverId = values.driverId;\r\n setValue('driverId', driverId);\r\n getDrivers(itemType === 'details', driverId);\r\n\r\n const date = new Date(values.date);\r\n setValue('date', date);\r\n const insuranceContractId = values.insuranceContractId;\r\n setValue('insuranceContractId', insuranceContractId);\r\n getInsuranceContractsByDate(itemType === 'details', date, insuranceContractId);\r\n\r\n setValue('location', values.location);\r\n setValue('guilty', values.guilty);\r\n setValue('insuranceAssumedCost', values.insuranceAssumedCost);\r\n setValue('hour', values.hour);\r\n setValue('notes', values.notes);\r\n\r\n setValuesFiles(values.attachments);\r\n\r\n setAccident(values);\r\n }\r\n\r\n const onSubmit = async (form: AccidentDto) => {\r\n try {\r\n if ((showField(SEGMENT_FEATURES.KM) && !form.insuranceContractId) || !form.location || !form.date) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n\r\n prepareFilesToSubmit();\r\n\r\n if (form.id) {\r\n await AccidentsService.update(form, form.attachments ?? []);\r\n } else {\r\n itemId = await AccidentsService.create(form, form.attachments ?? []);\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n\r\n onBackList();\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't update the accident with id: ${form.id}`, error);\r\n arrangeFilesAfterSubmit();\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const arrangeFilesAfterSubmit = () => {\r\n setValuesFiles(savedFiles);\r\n }\r\n\r\n const prepareFilesToSubmit = () => {\r\n setValuesFiles(getValues('attachments')?.filter(x => !x.id));\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setValue('attachments', files);\r\n setSavedFiles(files?.filter(x => x.id));\r\n }\r\n\r\n const onRemoveFile = (file: CustomFile) => {\r\n if (file.id) {\r\n const arr = [...(getValues('attachmentsToRemove') || []), file.id];\r\n setValue('attachmentsToRemove', arr);\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: AccidentDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await AccidentsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n onBackList();\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const renderBlaming = (onChange: (...event: any[]) => void, valueController: boolean, toSetValue: boolean, text: string) => {\r\n return
(Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details') ? onChange(toSetValue) : null}\r\n className={`${(valueController === false && !toSetValue) || (valueController === true && toSetValue) ? styles.selected : styles.notSelected}`}\r\n style={{ width: '50%', backgroundColor: ((valueController === false && !toSetValue) ? BLAMING_COLORS.NOT_GUILTY : (valueController === true && toSetValue) ? BLAMING_COLORS.GUILTY : '#fff') }}>\r\n
\r\n
\r\n {text}\r\n
\r\n
\r\n
\r\n }\r\n\r\n const renderAssumedCost = (onChange: (...event: any[]) => void, valueController: boolean, toSetValue: boolean, text: string) => {\r\n return
(Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details') ? onChange(toSetValue) : null}\r\n className={`${(valueController === false && !toSetValue) || (valueController === true && toSetValue) ? styles.selected : styles.notSelected}`}\r\n style={{ width: '50%', backgroundColor: ((valueController === false && !toSetValue) ? colors.success : (valueController === true && toSetValue) ? colors.success : colors.white) }}>\r\n
\r\n
\r\n {text}\r\n
\r\n
\r\n
\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (vehicleSegmentFeatures.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n const renderBody = () => {\r\n return (\r\n <>\r\n \r\n \r\n
\r\n {\r\n <>\r\n {if(!!accident){ getData(accident?.id); } onBackList();}} />\r\n {t('accidents.title')}\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n {\r\n setValue('date', date);\r\n getInsuranceContractsByDate((Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details'), date, getValues('insuranceContractId'));\r\n }}\r\n dateSelected={watch('date')}\r\n dateFormat={DATE_FORMAT_DEFAUT}\r\n dateCustomInput={} removeIconOrTextBorderRadius={true} />}\r\n dateName=\"date\"\r\n dateRequired={true}\r\n dateDisabled={(Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details')}\r\n\r\n onTimeChoose={hour => { setValue('hour', hour.formatted24) }}\r\n timePlaceholder={t('common.hour')}\r\n timeName=\"hour\"\r\n timeDisabled={(Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n
\r\n
\r\n {renderBlaming(onChange, value, false, t('accidents.guilt_types.innocent'))}\r\n {renderBlaming(onChange, value, true, t('accidents.guilt_types.guilty'))}\r\n
\r\n
\r\n );\r\n }}\r\n control={control}\r\n name=\"guilty\"\r\n defaultValue={getValues('guilty')} />\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n
\r\n
\r\n {renderAssumedCost(onChange, value, false, t('common.no'))}\r\n {renderAssumedCost(onChange, value, true, t('common.yes'))}\r\n
\r\n
\r\n );\r\n }}\r\n control={control}\r\n name=\"insuranceAssumedCost\"\r\n defaultValue={getValues('insuranceAssumedCost')} />\r\n \r\n
\r\n \r\n
\r\n {renderButtons()}\r\n \r\n \r\n
\r\n \r\n \r\n {t('common.add_new_file')}}\r\n smallButtonAdd={true}\r\n fileButtonSizes={{ sm: 12, lg: 6 }}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n setValue('notes', event.currentTarget.value.toString())}\r\n placeholder={t('common.notes')}\r\n rows={5}\r\n />\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n const renderButtons = () => {\r\n return (\r\n <>\r\n
\r\n {\r\n if(!!accident){ getData(accident?.id); }\r\n onBackList();\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {(Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details') && editable && hasAccidentsWritePolicy &&\r\n showRemoveItemDialog({ id: accident?.id } as AccidentDto)} />\r\n }\r\n {(Utils.isStringNullOrEmpty(itemType) ? type === 'details' : itemType === 'details') && editable && hasAccidentsWritePolicy &&\r\n { onItemDetails(false); }}\r\n />}\r\n {(Utils.isStringNullOrEmpty(itemType) ? type !== 'details' : itemType !== 'details') && hasAccidentsWritePolicy &&\r\n }\r\n\r\n removeItem()}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />\r\n
\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {renderBody()}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AccidentScreen;\r\n","import DriversService from 'api/drivers/DriversService';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport Select from 'common/components/select/Select';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { BLAMING_COLORS, LOGGER_LOG_TYPE } from 'Config';\r\nimport moment from 'moment';\r\nimport React, { memo, useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport styles from './AccidentFiltersScreen.module.scss';\r\n\r\nexport interface Filters {\r\n vehicleId?: string;\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n driverId?: string;\r\n guilty?: boolean;\r\n allIn?: string;\r\n vehicleName?: string;\r\n page?:number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n isDriver?: boolean;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n isVehicle?: boolean;\r\n}\r\n\r\nconst AccidentFiltersScreen: React.FC = ({ filters, isDriver, onChange, onFilter, isVehicle }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { driverId } = useParams<{ driverId: string }>();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { register, reset, getValues, setValue, watch, handleSubmit, control } = form;\r\n\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const [vehicles, drivers] = await Promise.all([\r\n VehiclesService.catalog(),\r\n DriversService.catalog()\r\n ]);\r\n setVehicles(vehicles);\r\n setDriversOptions(drivers);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get information to fill accidents list filters`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n reset({\r\n startDate: undefined,\r\n endDate: undefined,\r\n guilty: undefined,\r\n allIn: undefined,\r\n driverId: isDriver && !Utils.isStringNullOrEmpty(driverId) ? driverId : undefined,\r\n vehicleId: undefined\r\n })\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (filters: Filters) => {\r\n onFilter({ ...filters, driverId: isDriver && !Utils.isStringNullOrEmpty(driverId) ? driverId : filters.driverId });\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n const renderBlaming = (onChange: (...event: any[]) => void, valueController: boolean, toSetValue: boolean, text: string) => {\r\n return
onChange(valueController === toSetValue ? undefined : toSetValue)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {text}\r\n
\r\n
\r\n
\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getValues('startDate')}\r\n defaultEndValue={getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n {!isVehicle && \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('vehicleName', vehiclesOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ? { label: vehiclesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n }\r\n {!isDriver && \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={driversOptions.find(x => x.value === value) ? { label: driversOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"driverId\"\r\n defaultValue={getValues('driverId')} />\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n return (\r\n
\r\n
\r\n {renderBlaming(onChange, value, false, t('accidents.guilt_types.innocent'))}\r\n {renderBlaming(onChange, value, true, t('accidents.guilt_types.guilty'))}\r\n
\r\n
\r\n );\r\n }}\r\n control={control}\r\n name=\"guilty\"\r\n defaultValue={getValues('guilty')} />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(AccidentFiltersScreen);\r\n","import AccidentsService from 'api/accidents/AccidentsService';\r\nimport { AccidentDto } from 'api/accidents/models/AccidentDto';\r\nimport { AccidentsSearchCriteria } from 'api/accidents/models/AccidentsSearchCriteria';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { BLAMING_COLORS, DATE_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport { Reducers } from 'store/types';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport AccidentFiltersScreen, { Filters } from '../AccidentFilters/AccidentFiltersScreen';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport styles from './ListAccidentsScreen.module.scss';\r\nimport moment from 'moment';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\n\r\nexport type Props = {\r\n onClickItem: (item: AccidentDto, isDetails: boolean) => void;\r\n createNewAccident?: () => void;\r\n isDriver?: boolean;\r\n criteriaProp?: AccidentsSearchCriteria;\r\n isVehicle?: boolean;\r\n editable: boolean;\r\n tourReRender?: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\n\r\nconst ListAccidentsScreen = ({ onClickItem, createNewAccident, isDriver, criteriaProp, isVehicle, editable, tourReRender, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const { vehicleId, driverId } = useParams<{ vehicleId: string, driverId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n const [accidents, setAccidents] = useState([]);\r\n\r\n const [criteria, setCriteria] = useState(!criteriaProp ? {\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: vehicleId,\r\n driverId: isDriver ? driverId : undefined,\r\n orderColumn: 'a.date',\r\n orderBy: 'desc'\r\n } : criteriaProp);\r\n const [totalItems, setTotalItems] = useState(0);\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasAccidentsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ACCIDENTS_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n const _accidents = await AccidentsService.getList(criteria);\r\n\r\n setTotalItems(_accidents.totalItems);\r\n setAccidents(_accidents.items);\r\n\r\n } catch (error) {\r\n\r\n Logger.error(LOGGER_LOG_TYPE.ACCIDENTS, `Couldn't get accident list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n finally{\r\n tourReRender && tourReRender();\r\n }\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const renderTableActionCell = (\r\n row: AccidentDto,\r\n ) => {\r\n\t const urlDetails = (isVehicle || isDriver) ? `/${isDriver? 'drivers' : 'vehicles'}/details/${isDriver? driverId : vehicleId}/accidents/details/${row.id}` : `accidents/details/${row.id}`;\r\n const urlEdit = (isVehicle || isDriver) ? `/${isDriver? 'drivers' : 'vehicles'}/details/${isDriver? driverId : vehicleId}/accidents/edit/${row.id}` : `accidents/edit/${row.id}`;\r\n\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { hasAccidentsWritePolicy && editable && \r\n {t('common.edit')}\r\n }\r\n { hasAccidentsWritePolicy && editable && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('accidents.list.driver_date'),\r\n renderCell: row =>
\r\n
{row.driverName || '-'}
\r\n
{moment(row.date).format(DATE_FORMAT_DEFAUT) + (row.hour && (' | ' + row.hour))}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'a.date'\r\n },\r\n {\r\n name: t('accidents.list.location'),\r\n renderCell: row =>
{row.location}
,\r\n onSearch: onTableFilter,\r\n searchField: 'location',\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('accidents.list.guilt'),\r\n renderCell: row =>
\r\n {t(`accidents.guilt_types.${row.guilty ? 'guilty' : 'innocent'}` as any)}\r\n
\r\n ,\r\n onSearch: onTableFilter,\r\n searchField: 'guilty'\r\n },\r\n {\r\n name: t('accidents.list.insurance_contract'),\r\n renderCell: row =>\r\n
\r\n {row.insuranceContractSupplier ?
{row.insuranceContractSupplier}, {t('accidents.list.insurance')}
:
-
}\r\n {row.insuranceContractNumber ?
{t('accidents.list.number_small')} {row.insuranceContractNumber}
:
-
}\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'insurance_contract_number',\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('accidents.list.insurance_assumed_cost'),\r\n renderCell: row =>
\r\n {t(`common.${row.insuranceAssumedCost ? 'yes' : 'no'}` as any)}\r\n
\r\n ,\r\n onSearch: onTableFilter,\r\n searchField: 'guilty'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n }\r\n ];\r\n\r\n if (!isVehicle) {\r\n cols.unshift(\r\n {\r\n renderCell: row =>\r\n
\r\n
\r\n
\r\n
\r\n
,\r\n width: 90,\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n },\r\n {\r\n name: t('charges.list.vehicle'),\r\n renderCell: row =>\r\n
\r\n
{row.vehicleRegistrationNumber}
\r\n
{row.vehicleBrandName + (' | ') + row.vehicleModelName}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'vehicle.registration_number',\r\n }\r\n );\r\n }\r\n\r\n return cols;\r\n }, []);\r\n\r\n\r\n const onPageChange = (page: number) => {\r\n setCriteria({ ...criteria, page });\r\n }\r\n\r\n const showRemoveItemDialog = (item: AccidentDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await AccidentsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete accident`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, [criteria]);\r\n\r\n const saveFiltersOnCache = (f:Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('ACCIDENTSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('ACCIDENTSFILTER');\r\n if(cachedFilters != null && !driverId){onChangeFilters(JSON.parse(cachedFilters),true)}\r\n else{getData()}\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?:boolean) => {\r\n updateTotalFilters(f);\r\n setFilters(f);\r\n criteria.driverId = f.driverId;\r\n criteria.startDate = f.startDate;\r\n criteria.endDate = f.endDate;\r\n criteria.guilty = f.guilty;\r\n criteria.allIn = f.allIn;\r\n \r\n if(isOnLoad && f.page){\r\n criteria.page = f.page\r\n }else{\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.allIn) {\r\n total++;\r\n }\r\n if (f.driverId && !isDriver) {\r\n total++;\r\n }\r\n if (f.guilty === false || f.guilty === true) {\r\n total++;\r\n }\r\n //if (f.vehicleId && f.vehicleId.length > 0) {\r\n // total++;\r\n //}\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {!criteriaProp && updateTotalFilters(filters)}\r\n content={setIsPopoverOpen =>\r\n { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />\r\n }\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n } \r\n {createNewAccident && hasAccidentsWritePolicy && editable && createNewAccident()} />}\r\n
\r\n
\r\n\r\n
\r\n onClickItem(row, true)}\r\n allowHover={true}\r\n initialSearch={{ colField: 'a.date', isOrderAsc: false }}\r\n />\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ListAccidentsScreen;\r\n","import { AccidentDto } from 'api/accidents/models/AccidentDto';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport React from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport AccidentScreen from '../carAccidentTab/components/AccidentScreen';\r\nimport ListAccidentsScreen from './components/AccidentList/ListAccidentsScreen';\r\nimport styles from './CarAccidentTab.module.scss';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n ACCIDENT = 'ACCIDENT'\r\n}\r\n\r\ntype Props = {\r\n vehicle?: VehicleViewModel;\r\n tourReRender: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst CarAccidentTab: React.FC = ({ vehicle, tourReRender }: Props) => {\r\n\r\n const { vehicleId, tabId, itemId, itemType } = useParams<{ vehicleId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n const history = useHistory();\r\n\r\n return (\r\n
\r\n {(itemType??'list') === ScreenType.LIST.toString().toLowerCase() &&\r\n {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/new`);\r\n }}\r\n onClickItem={(item: AccidentDto, isDetails: boolean) => {\r\n history.push(`/vehicles/details/${vehicleId}/${tabId}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n tourReRender={tourReRender}\r\n >\r\n }\r\n\r\n {(itemType??'list') !== ScreenType.LIST.toString().toLowerCase() &&\r\n history.goBack() }\r\n onItemDetails={(state: boolean) => history.push(`/vehicles/details/${vehicleId}/${tabId}/${state ? 'details' : 'edit'}/${itemId}`)} />}\r\n
\r\n );\r\n}\r\n\r\nexport default CarAccidentTab;","import {\r\n useQuery\r\n } from '@tanstack/react-query'\r\n\r\nexport const useGeoLocator = (lat: number, long: number, lang: string | null = null) => {\r\n return useQuery({\r\n queryKey: ['geolocator', `${lat},${long}`],\r\n // queryFn: () => fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${long}&location_type=ROOFTOP&result_type=street_address&key=AIzaSyBYRtUYW1c5BLiIWO0s3VxVv8ZAzmCVdCY`).then(res => res.json()),\r\n queryFn: () => fetch(`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${long}&format=json`).then(res => res.json()),\r\n retryDelay: 10000,\r\n retry: 3\r\n });\r\n};\r\n\r\n\r\nexport const addressFormat = (data: any,latitude:number,longitude:number) => {\r\n if (data?.display_name) { // OSM\r\n const address = data?.address;\r\n if (address.country_code === 'fr') {\r\n const list = [];\r\n if (address.house_number) {\r\n list.push(address.house_number);\r\n }\r\n if (address.road) {\r\n list.push(address.road);\r\n }\r\n if (address.postcode) {\r\n list.push(address.postcode);\r\n }\r\n if (address.town) {\r\n list.push(address.town);\r\n }\r\n if (address.municipality) {\r\n list.push(address.municipality);\r\n }\r\n if (address.country) {\r\n list.push(address.country);\r\n }\r\n return list.join(', ');\r\n } else {\r\n return data?.display_name\r\n }\r\n }\r\n return (data && data.results && data.results.length > 0 ? data.results[0].formatted_address : `${latitude},${longitude}`);\r\n};\r\n","/* eslint-disable @typescript-eslint/indent */\r\nimport L from 'leaflet';\r\nimport { createControlComponent } from '@react-leaflet/core';\r\nimport 'leaflet-routing-machine';\r\nimport { render } from 'react-dom';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport { FaMapMarkerAlt } from 'react-icons/fa';\r\nimport styles from './RoutineMachine.module.scss';\r\n\r\nconst RoutingMachineLayer = (props: any) => {\r\n const { waypoints, renderInfo, hide, loadIconColor } = props;\r\n\r\n const getIconColor = (i: number) => {\r\n if (loadIconColor) {\r\n return loadIconColor(i)\r\n }\r\n return i == 0 ? '#dd1021' : '#1bd44d';\r\n }\r\n\r\n const plan = new L.Routing.Plan(waypoints, {\r\n createMarker: (i, wp, nWps) => {\r\n const icon = new L.DivIcon({\r\n html: ReactDOMServer.renderToString(\r\n \r\n ), // Renderiza o ícone do FaMapMarkerAlt como HTML\r\n className: styles.pin,\r\n iconAnchor: [15, 30],//para a base do icon ficar exatamente nas coordenadas e não ficar centrado\r\n popupAnchor: [1, -34]\r\n })\r\n\r\n if (hide && i > 0 && i < waypoints.length - 1) {\r\n return false;\r\n }\r\n\r\n const marker = L.marker(wp.latLng, { icon: icon })\r\n .bindPopup(() => {\r\n const div = document.createElement('div');\r\n if (renderInfo) {\r\n render(renderInfo(i), div);\r\n }\r\n return div.innerHTML;\r\n }, { minWidth: 230, closeButton: false });\r\n props.setMarkerRef && props.setMarkerRef(i, marker);\r\n return marker;\r\n }\r\n });\r\n\r\n const instance = L.Routing.control({\r\n waypoints: waypoints,\r\n show: false,\r\n autoRoute: false,\r\n addWaypoints: true,\r\n routeWhileDragging: false,\r\n fitSelectedRoutes: true,\r\n showAlternatives: false,\r\n plan,\r\n // lineOptions: { extendToWaypoints: false, missingRouteTolerance: 0, styles: [{ color: 'white', opacity: 0, weight: 9 }] }\r\n });\r\n return instance;\r\n};\r\n\r\nconst RoutingMachine = createControlComponent(RoutingMachineLayer);\r\n\r\nexport default RoutingMachine;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { FaExternalLinkAlt, FaMapMarkerAlt } from 'react-icons/fa';\r\nimport styles from './CurrentLocation.module.scss';\r\nimport { TrackingItemDto } from 'api/tracking/models/TrackingItemDto';\r\nimport { addressFormat, useGeoLocator } from 'common/services/GeoLocator';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { DATE_TIME_FORMAT_DEFAULT, googleMapsQuery } from 'Config';\r\n\r\ntype Props = {\r\n position?: TrackingItemDto;\r\n};\r\n\r\nconst CurrentLocation: React.FC = ({ position }: Props) => {\r\n if (!position) return null;\r\n\r\n const { t } = useTranslation();\r\n\r\n const isIgnitionOn = (item?: TrackingItemDto) => {\r\n return item?.ignition ?? false;\r\n }\r\n \r\n const link = googleMapsQuery(position?.latitude,position?.longitude);\r\n\r\n const hasValidInfo = (data: any) => {\r\n return data && (data.display_name || (data.results && data.results.length));\r\n }\r\n\r\n const renderAddress = (data: any) =>
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {
\r\n {hasValidInfo(data) && addressFormat(data,position?.latitude ?? 0, position?.longitude ?? 0)}\r\n \r\n
} \r\n
\r\n {isIgnitionOn(position) ? t('vehicles.list.ignition_on') : t('vehicles.list.ignition_off')}\r\n   •  \r\n {t('vehicles.list.last_update')} \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n const { isLoading, error, data } = useGeoLocator(position?.latitude ?? 0, position?.longitude ?? 0); \r\n if (isLoading) return renderAddress(null);\r\n if (error) console.log('An error occurred while fetching the user data ', error);\r\n return renderAddress(data);\r\n}\r\n\r\nexport default CurrentLocation;","import React, { useState, useRef, useEffect } from 'react';\r\nimport styles from './SortingDropdown.module.scss';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaSortAmountDown, FaSortAmountUp } from 'react-icons/fa';\r\n\r\ntype Props = {\r\n onSortChange: (value: any) => void;\r\n defaultOption?: string;\r\n closeDropOnSelect?: boolean;\r\n} & React.DetailedHTMLProps, HTMLSpanElement>;\r\n\r\nconst SortingDropdown: React.FC = ({ onSortChange, defaultOption, closeDropOnSelect }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const [selectedOption, setSelectedOption] = useState(defaultOption);\r\n\r\n const options = [\r\n { value: 'DESC', label: t('common.sort.desc'), icon: },\r\n { value: 'ASC', label: t('common.sort.asc'), icon: },\r\n ];\r\n\r\n const dropdownRef = useRef(null);\r\n\r\n const handleSortChange = (e: any) => {\r\n const option = e.value;\r\n setSelectedOption(option);\r\n onSortChange(option);\r\n if (closeDropOnSelect) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n\r\n return (\r\n <>\r\n
\r\n
setIsOpen(!isOpen)}>\r\n
{selectedOption && options.find(opt => opt.value === selectedOption)?.icon}
\r\n {/* {isOpen ? : } */}\r\n
\r\n {isOpen && (\r\n
\r\n {options.map(option => (\r\n
handleSortChange(option)} >\r\n {option.label}\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default SortingDropdown;\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Ret\\\\xE2ngulo_949\",\n \"data-name\": \"Ret\\\\xE2ngulo 949\",\n width: 18.5,\n height: 11.54,\n fill: \"none\"\n})));\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grupo_1213-2\",\n \"data-name\": \"Grupo 1213\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1525\",\n \"data-name\": \"Caminho 1525\",\n d: \"M40.556,2.976A.969.969,0,0,1,41,4.065,2.871,2.871,0,0,1,38.7,6.222c-.424.056-.863-.007-1.294.009-.138,0-.367.063-.387.14a.487.487,0,0,0,.126.424,11.22,11.22,0,0,0,1.216.822,1.283,1.283,0,0,1,.718.806,1.979,1.979,0,0,0,.764,1.11A2.136,2.136,0,0,0,40,9.4c2.217-2.218,4.446-4.426,6.642-6.665A12.908,12.908,0,0,0,47.992,1c.148-.214.3-.611.2-.771-.2-.325-.616-.24-.958-.143a3.052,3.052,0,0,0-.527.227q-.562.283-1.117.58a6.208,6.208,0,0,1-3.58.728c-.5-.048-.991-.168-1.485-.262-.44-.083-.582.028-.586.464a1.292,1.292,0,0,0,.618,1.152\",\n transform: \"translate(-34.336 0)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1526\",\n \"data-name\": \"Caminho 1526\",\n d: \"M12.251,14.483c.066-.028.163.021.247.031a2.3,2.3,0,0,0,2.767-1.455.472.472,0,0,0-.185-.671,1.854,1.854,0,0,1-.822-1.451A.475.475,0,0,0,14.2,10.7c-.257-.344-.524-.679-.833-1.075l-3.335,3.537c.329.264.759.608,1.188.953.3.243.571.564,1.035.366\",\n transform: \"translate(-9.305 -8.933)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1527\",\n \"data-name\": \"Caminho 1527\",\n d: \"M161.069,49.925a.443.443,0,0,0,.558.008q2.745-2.044,5.493-4.083a1.953,1.953,0,0,0,.269-.323,2.321,2.321,0,0,0-.286-.335c-.377-.3-.766-.58-1.15-.868-.41-.307-.488-.3-.842.07q-2.106,2.2-4.212,4.4c-.61.636-.6.673.17,1.13\",\n transform: \"translate(-148.889 -40.923)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1528\",\n \"data-name\": \"Caminho 1528\",\n d: \"M18.122,150.487c-.065-.046-.187-.012-.283-.012H.573c-.108,0-.242-.031-.317.02-.114.078-.257.217-.256.327s.159.236.278.3a.832.832,0,0,0,.355.017H17.756a.836.836,0,0,0,.355-.014c.128-.067.308-.2.306-.306s-.172-.245-.295-.331\",\n transform: \"translate(0 -139.61)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1529\",\n \"data-name\": \"Caminho 1529\",\n d: \"M87.694,18.707Q85,21.4,82.311,24.084a1.831,1.831,0,0,1-.353.217c.455.365.732.349,1.075.008q3.294-3.284,6.581-6.576a2.933,2.933,0,0,0,.862-1.473,3.986,3.986,0,0,0,.009-.781,16.964,16.964,0,0,1-2.79,3.228\",\n transform: \"translate(-76.046 -14.363)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Caminho_1530\",\n \"data-name\": \"Caminho 1530\",\n d: \"M219,97.651c.207.5.39,1,.581,1.508.349.916.349.916,1.386.849l-1.23-3.213c-.229.168-.412.32-.612.443a.28.28,0,0,0-.126.412\",\n transform: \"translate(-203.168 -89.813)\"\n}));\nfunction SvgEcoConducao(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Grupo_1213\",\n \"data-name\": \"Grupo 1213\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 18.5,\n height: 11.54,\n viewBox: \"0 0 18.5 11.54\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEcoConducao);\nexport default __webpack_public_path__ + \"static/media/eco-conducao.c8903a96.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './EcoDriving.module.scss';\r\nimport { ReactComponent as EcoIcon } from 'assets/svg/eco-conducao.svg';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport NumberFormat from 'react-number-format';\r\n\r\ntype Props = {\r\n value: number;\r\n idx?: any;\r\n};\r\n\r\nconst EcoDriving: React.FC = ({ value, idx }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const calcEcoColor = (val: number) => {\r\n if (val <= 5) {\r\n return '#73C25C';\r\n } else if (val > 5 && val < 15) {\r\n return '#F3A70D';\r\n } else {\r\n return '#D22222';\r\n }\r\n }\r\n\r\n const calcEcoValue = (val: number) => {\r\n if (val <= 5) {\r\n return styles.eco_success;\r\n } else if (val > 5 && val < 15) {\r\n return styles.eco_warning;\r\n } else {\r\n return styles.eco_danger;\r\n }\r\n }\r\n\r\n const calcEcoRowColor = (val: number) => {\r\n if (val <= 5) {\r\n return styles.row_eco_success;\r\n } else if (val > 5 && val < 15) {\r\n return styles.row_eco_warning;\r\n } else {\r\n return styles.row_eco_danger;\r\n }\r\n }\r\n\r\n const ecoValueTooltip = (ecoValue: number) => (\r\n \r\n \r\n
{t('location.eco')} : {t('location.tooltip_eco_calc')}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 5.01 && ecoValue <= 14.99 ? calcEcoRowColor(ecoValue) : undefined}>\r\n \r\n \r\n \r\n = 15 ? calcEcoRowColor(ecoValue) : undefined}>\r\n \r\n \r\n \r\n
{t('location.tooltip_eco_penalty_header')}{t('location.tooltip_eco_penalty_color')}
{t('location.tooltip_eco_success', { until: 5 })}
{t('location.tooltip_eco_warning', { from: 5.01, until: 14.99 })}
{t('location.tooltip_eco_danger', { from: 15 })}
\r\n \r\n
);\r\n\r\n\r\n return (\r\n
\r\n \r\n {/*
{t('location.eco')}
*/}\r\n ecoValueTooltip(value)} />\r\n
\r\n );\r\n}\r\n\r\nexport default EcoDriving;","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './MarkerPopup.module.scss';\r\nimport { TrackingItemDto } from 'api/tracking/models/TrackingItemDto';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { DATE_TIME_FORMAT_DEFAULT } from 'Config';\r\nimport DistanceFormat from 'common/components/distanceFormat/DistanceFormat';\r\n\r\ntype Props = {\r\n position?: TrackingItemDto;\r\n isRoute?: 'START' | 'END' | 'NO';\r\n};\r\n\r\nconst MarkerPopup: React.FC = ({ position, isRoute }: Props) => {\r\n if (!position) return null;\r\n\r\n const { t } = useTranslation();\r\n\r\n const onMovementLabel = (item: TrackingItemDto) => {\r\n if (isOnMovement(item)) {\r\n return t('common.yes');\r\n } else {\r\n return t('common.no');\r\n }\r\n }\r\n\r\n const onIgnitionOnLabel = (item: TrackingItemDto) => {\r\n if (isIgnitionOn(item)) {\r\n return t('common.yes');\r\n } else {\r\n return t('common.no');\r\n }\r\n }\r\n\r\n const isOnMovement = (item: TrackingItemDto) => {\r\n return item.movement ?? false;\r\n }\r\n\r\n const isIgnitionOn = (item: TrackingItemDto) => {\r\n return item.ignition ?? false;\r\n }\r\n\r\n return
\r\n {!isRoute &&
\r\n \r\n {t('location.vehicle')}\r\n \r\n \r\n {position.licensePlate ?? ''}\r\n \r\n
}\r\n {(!isRoute || isRoute == 'NO') &&
\r\n \r\n {t('location.date')}\r\n \r\n \r\n \r\n \r\n
}\r\n {isRoute && isRoute != 'NO' &&
\r\n \r\n {t(isRoute == 'START' ? 'location.date_start' : 'location.date_end')}\r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n \r\n {t('location.latitude')}\r\n \r\n \r\n {position.latitude ?? 0}\r\n \r\n
\r\n
\r\n \r\n {t('location.longitude')}\r\n \r\n \r\n {position.longitude ?? 0}\r\n \r\n
\r\n {isRoute == 'NO' &&
\r\n \r\n {t('location.speed')}\r\n \r\n \r\n {position.speed ?? 0} Km/h\r\n \r\n
}\r\n {isRoute &&
\r\n \r\n {t('location.km')}\r\n \r\n \r\n \r\n \r\n
}\r\n {isRoute == 'NO' &&
\r\n \r\n {t('location.ignition')}\r\n \r\n \r\n {onIgnitionOnLabel(position)}\r\n \r\n
}\r\n {isRoute == 'NO' &&
\r\n \r\n {t('location.movement')}\r\n \r\n \r\n {onMovementLabel(position)}\r\n \r\n
}\r\n
\r\n}\r\n\r\nexport default MarkerPopup;","import { useEffect } from 'react';\r\nimport { useMap } from 'react-leaflet';\r\n\r\ntype Props = {\r\n lat?: number,\r\n lng?: number,\r\n zoom?: number\r\n}\r\n\r\nconst RecenterAutomatically = ({ lat, lng, zoom }: Props) => {\r\n const map = useMap();\r\n\r\n useEffect(() => {\r\n if(lat && lng){\r\n map.setView([lat, lng], zoom);\r\n }\r\n }, [lat, lng]);\r\n\r\n return null;\r\n}\r\n\r\nexport default RecenterAutomatically;","import React, { useEffect, useState } from 'react';\r\nimport { MapContainer, Polyline, Popup, TileLayer, Marker } from 'react-leaflet';\r\nimport L from 'leaflet';\r\nimport styles from './CarGpsTab.module.scss';\r\nimport Loading from 'common/services/Loading';\r\nimport { useTranslation } from 'react-i18next';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport { FaCalendarAlt, FaRegClock, FaMapMarkerAlt, FaGasPump, FaHourglassEnd } from 'react-icons/fa';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport DateTimePicker from 'common/components/dateTimePicker/DateTimePicker';\r\nimport { DATEPICKER_FORMAT_DEFAULT, DATE_TIME_FORMAT_DEFAULT, DEFAULT_LANGUAGE, STORAGE } from 'Config';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport Storage from 'common/services/Storage';\r\nimport Utils from 'common/services/Utils';\r\nimport moment from 'moment';\r\nimport TrackingRoutes from 'api/tracking/models/TrackingRoutes';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport DistanceFormat from 'common/components/distanceFormat/DistanceFormat';\r\nimport { addressFormat, useGeoLocator } from 'common/services/GeoLocator';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\nimport { TrackingItemDto } from 'api/tracking/models/TrackingItemDto';\r\nimport RoutingMachine from 'common/components/maps/RoutineMachine';\r\nimport CurrentLocation from 'screens/vehicles-gps/components/currentLocation/CurrentLocation';\r\nimport SortingDropdown from 'common/components/sortingDropdown/SortingDropdown';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport EcoDriving from 'screens/vehicles-gps/components/ecoDriving/EcoDriving';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport MarkerPopup from 'screens/vehicles-gps/components/markerPopup/MarkerPopup';\r\nimport RecenterMap from 'screens/vehicles-gps/components/recenterMap/RecenterMap';\r\nimport NumberFormat from 'react-number-format';\r\n\r\ntype Props = {\r\n vehicleId: string;\r\n tourReRender: () => void;\r\n}\r\n\r\nconst CarGpsTab = ({ vehicleId, tourReRender }: Props) => {\r\n const { t } = useTranslation();\r\n const maxZoom = 18;\r\n\r\n const [routes, setRoutes] = useState([]);\r\n const [date, setDate] = useState(new Date());\r\n const locale = Storage.get(STORAGE.CURRENT_LOCALE) || DEFAULT_LANGUAGE;\r\n const [position, setPosition] = useState();\r\n const [waypoints, setWaypoints] = useState([]);\r\n const [zoom, setZoom] = useState(12);\r\n const [selectedRouteKey, setSelectedRouteKey] = useState('');\r\n const [waypointsInfo, setWaypointsInfo] = useState([]);\r\n const [refresh, setRefresh] = useState(1);\r\n const redOptions = { color: 'red' }\r\n const [orderBy, setOrderBy] = useState(localStorage.getItem('ROUTESFILTERORDERBY') ?? 'DESC');\r\n const [showPoints, setShowPoints] = useState(Storage.get('SHOWROUTEPOINTS') == 'true');\r\n const [loaded, setLoaded] = useState(false);\r\n const [positionLoaded, setPositionLoaded] = useState(false);\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [date, orderBy])\r\n\r\n useEffect(() => {\r\n getPosition();\r\n }, [vehicleId])\r\n\r\n const getData = async () => {\r\n try {\r\n if (loaded) {\r\n Loading.show(); //#49402\r\n }\r\n const orderColumn = 'start_date';\r\n const _routes = await TrackingService.getRoutes(vehicleId, date, orderColumn, orderBy);\r\n setRoutes(_routes);\r\n getPosition();\r\n setWaypoints([]);\r\n setWaypointsInfo([]);\r\n setSelectedRouteKey('');\r\n setRefresh(refresh + 1);\r\n setLoaded(true);\r\n }\r\n finally {\r\n if (loaded) {\r\n Loading.hide(); //#49402\r\n }\r\n tourReRender();\r\n }\r\n }\r\n\r\n const getPosition = async () => {\r\n try {\r\n if (loaded) {\r\n Loading.show(); //#49402\r\n }\r\n const positionResult = await TrackingService.getPosition(vehicleId);\r\n setPosition(positionResult);\r\n setPositionLoaded(true);\r\n }\r\n catch (err) {\r\n if (loaded) {\r\n Loading.hide(); //#49402\r\n }\r\n }\r\n }\r\n\r\n const loadWaypoints = async (start: number, stop: number) => {\r\n try {\r\n Loading.show();\r\n const _waypoints = await TrackingService.getWaypoints(vehicleId, start, stop);\r\n const waypoints: L.LatLng[] = [];\r\n if (_waypoints) {\r\n _waypoints.forEach(i => {\r\n waypoints.push(L.latLng(i.latitude ?? 0, i.longitude ?? 0));\r\n });\r\n }\r\n setSelectedRouteKey(`georoute_${start}_${stop}`)\r\n setWaypointsInfo(_waypoints);\r\n setWaypoints(waypoints);\r\n calculateZoom(Utils.getDistanceFromLatLonInKm(_waypoints[_waypoints.length - 1].latitude ?? 0, _waypoints[_waypoints.length - 1].longitude ?? 0, _waypoints[0].latitude ?? 0, _waypoints[0].longitude ?? 0))\r\n setRefresh(refresh + 1);\r\n Loading.hide();\r\n } catch (err) {\r\n Loading.hide();\r\n }\r\n\r\n }\r\n\r\n const GeoLocatorItem = ({ id, latitude, longitude, fuelLevel, icon, date, isLast, tooltipMessage, index, speed, address }: { id: number, latitude: number, longitude: number, fuelLevel: number, icon: string, date?: Date, isLast: boolean, tooltipMessage?: string, index?: number, speed: number, address: string }) => {\r\n let formatedAddress = '';\r\n if (address) {\r\n formatedAddress = address;\r\n } else {\r\n const { isLoading, error, data } = useGeoLocator(latitude, longitude);\r\n if (isLoading) return ;\r\n if (error) console.log('An error occurred while fetching the user data ', error);\r\n formatedAddress = addressFormat(data,latitude, longitude);\r\n try {\r\n TrackingService.updateAddress(id, formatedAddress).catch(console.error);\r\n } catch (error) {\r\n console.log('Couldn\\'t update route address', error);\r\n }\r\n }\r\n return (\r\n
\r\n
\r\n {!isLast &&
}\r\n
\r\n {formatedAddress}\r\n
\r\n {date &&
}\r\n {isLast && (speed > 0) &&
\r\n
{t('location.in_transit')}
\r\n
}\r\n
\r\n {fuelLevel > 0 && <>}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n const GeoRoutes = ({ idx, start, stop, startLatitude, startLongitude, stopLatitude, stopLongitude, startDate, stopDate, startKm, stopKm, startFuelLevel, stopFuelLevel, ecoValue, idling, speed, startAddress, stopAddress }:\r\n { idx: number, start: number, stop: number, startLatitude: number, startLongitude: number, stopLatitude: number, stopLongitude: number, startKm: number, stopKm: number, startDate: Date, stopDate: Date, startFuelLevel: number, stopFuelLevel: number, ecoValue: number, idling: number, speed: number, startAddress: string, stopAddress: string }) => {\r\n const kms = stopKm - startKm;\r\n\r\n return (\r\n
loadWaypoints(start, stop)} key={`georoute_${start}_${stop}`}>\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{calcTimeTotalRoute(startDate, stopDate)}
\r\n
\r\n \r\n
\r\n
\r\n
{calcIdlingTotalRoute(idling)}
\r\n
\r\n \r\n <>\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const calcTimeTotalRoute = (startDate: Date, stopDate: Date) => {\r\n const diffInTime = new Date(stopDate).getTime() - new Date(startDate).getTime();\r\n const hours = Math.floor(diffInTime / (1000 * 60 * 60))\r\n const minutes = Math.floor((diffInTime - (hours * 1000 * 60 * 60)) / (1000 * 60));\r\n const seconds = Math.round((diffInTime - (hours * 3600 * 1000) - (minutes * 1000 * 60)) / 1000);\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} h`;\r\n }\r\n\r\n const calcTimeTotalRoutes = (routes: TrackingRoutes[]) => {\r\n const diffInTime = routes.map(r => new Date(r.stopDate).getTime() - new Date(r.startDate).getTime()).reduce((p, c) => p + c);\r\n const hours = Math.floor(diffInTime / (1000 * 60 * 60))\r\n const minutes = Math.floor((diffInTime - (hours * 1000 * 60 * 60)) / (1000 * 60));\r\n const seconds = Math.round((diffInTime - (hours * 3600 * 1000) - (minutes * 1000 * 60)) / 1000);\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} h`;\r\n }\r\n\r\n const calcPenaltyTotalRoutes = (routes: TrackingRoutes[]) => {\r\n const kms = routes.map(r => r.stopKm - r.startKm).reduce((p, c) => p + c);\r\n const penalty = routes.map(r => r.penalty).reduce((p, c) => p + c);\r\n return kms > 0 ? (penalty / kms) : penalty;\r\n }\r\n\r\n const calcIdlingTotalRoute = (idling: number) => {\r\n const hours = Math.floor(idling / 3600);\r\n const minutes = Math.floor((idling - (hours * 3600)) / 60);\r\n const seconds = Math.round(idling - (hours * 3600) - (minutes * 60));\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} h`;\r\n }\r\n\r\n const calcIdlingTotalRoutes = (routes: TrackingRoutes[]) => {\r\n const all = routes.map(r => r.idling).reduce((p, c) => p + c);\r\n const hours = Math.floor(all / 3600);\r\n const minutes = Math.floor((all - (hours * 3600)) / 60);\r\n const seconds = Math.round(all - (hours * 3600) - (minutes * 60));\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} h`;\r\n }\r\n\r\n const moveToCurrent = () => {\r\n setSelectedRouteKey('');\r\n setWaypointsInfo([]);\r\n setWaypoints([]);\r\n setRefresh(refresh + 1);\r\n }\r\n\r\n const customIcon = new L.DivIcon({\r\n html: ReactDOMServer.renderToString(), // Renderiza o ícone do FaMapMarkerAlt como HTML\r\n iconAnchor: [15, 30],//para a base do icon ficar exatamente nas coordenadas e não ficar centrado\r\n popupAnchor: [1, -34],\r\n className: styles.pin\r\n });\r\n\r\n const calculateZoom = (distance?: number) => {\r\n if (!distance) {\r\n return;\r\n }\r\n\r\n let z = 15 + Math.round(Math.log2(1 / distance));\r\n\r\n const minZoom = 5;\r\n if (z > maxZoom) {\r\n z = maxZoom;\r\n } else if (z < minZoom) {\r\n z = minZoom;\r\n }\r\n\r\n setZoom(z);\r\n }\r\n\r\n const renderInfo = (i: number) => {\r\n if (!waypointsInfo[i]) return <>;\r\n return \r\n }\r\n\r\n const loadIconColor = (i: number) => {\r\n return i == 0 ? '#dd1021' : (i == waypointsInfo.length-1 ? '#1bd44d' : '#1781A1');\r\n }\r\n\r\n const renderMap = () => {\r\n const zoomPosition = waypointsInfo && waypointsInfo.length > 0 ? waypointsInfo[Math.round(waypointsInfo.length / 2)] : position;\r\n if (position && zoomPosition) {\r\n return \r\n \r\n {!(waypointsInfo && waypointsInfo.length > 0) &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n } else {\r\n return <>\r\n }\r\n }\r\n\r\n const handleSortChange = (option: string) => {\r\n setOrderBy(option);\r\n localStorage.setItem('ROUTESFILTERORDERBY', option);\r\n };\r\n\r\n const handleShowPoints = (option: boolean) => {\r\n setShowPoints(option);\r\n setRefresh(refresh + 1);\r\n Storage.set('SHOWROUTEPOINTS', `${option}`);\r\n };\r\n\r\n\r\n if (!loaded) {\r\n return
\r\n \r\n
\r\n }\r\n\r\n if (!position && loaded && positionLoaded) {\r\n return
\r\n {t('location.info_messages.no_data')}\r\n
\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n { setDate(date); }}\r\n maxDate={moment(new Date()).toDate()}\r\n customInput={} />}\r\n />\r\n \r\n {routes && routes.length > 0 ?\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
r.stopKm - r.startKm).reduce((p, c) => p + c)} showLessThan1Km={false} />
\r\n
\r\n \r\n
\r\n
\r\n
{calcTimeTotalRoutes(routes)}
\r\n
\r\n \r\n
\r\n
\r\n
{calcIdlingTotalRoutes(routes)}
\r\n
\r\n \r\n <>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {routes.map(_ => 1).reduce((p, c) => p + c)} {t('location.path')}\r\n \r\n
\r\n {t('location.show_points')}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {routes.map((route, i) => )}\r\n
\r\n\r\n\r\n \r\n :\r\n \r\n
\r\n {t('location.info_messages.without_routes')}\r\n
\r\n }\r\n \r\n \r\n \r\n moveToCurrent()} className={styles.currentLocation}>\r\n \r\n \r\n \r\n
\r\n {renderMap()}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CarGpsTab;","import { AlertType, AlertTypeColorEnum } from 'api/alerts/enums/AlertType';\r\nimport { AlertSubjectColorEnum, AlertSubjectEnum } from 'api/alerts/enums/AlertSubjectEnum';\r\nimport colors from 'styles/export/colors.module.scss';\r\n\r\nexport type AlertTypeColor = { backgroundColor: string, textColor: string, rowColor?: string };\r\n\r\nexport const getAlertTypeColor = (type: AlertType) => {\r\n\r\n return { backgroundColor: colors.danger, textColor: colors.white, rowColor: AlertTypeColorEnum[type] };\r\n}\r\n\r\nexport const getSubjectTypeColor = (subject: AlertSubjectEnum) => {\r\n switch (subject) {\r\n case AlertSubjectEnum.INFORMATION:\r\n return { backgroundColor: AlertSubjectColorEnum.INFORMATION, textColor: colors.white };\r\n case AlertSubjectEnum.INTERVENTION:\r\n return { backgroundColor: AlertSubjectColorEnum.INTERVENTION, textColor: colors.white };\r\n case AlertSubjectEnum.INTERVENTION_URGENT:\r\n return { backgroundColor: AlertSubjectColorEnum.INTERVENTION_URGENT, textColor: colors.white };\r\n default:\r\n return { backgroundColor: colors.black, textColor: colors.white };\r\n }\r\n}\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './AlertsFilters.module.scss';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectBooleanLabel, SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Utils from 'common/services/Utils';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AlertType } from 'api/alerts/enums/AlertType';\r\nimport { AnnotationStatusEnum } from 'api/carVerification/enums/AnnotationEnum';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport UsersService from 'api/users/UsersService';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport moment from 'moment';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\nexport interface Filters {\r\n vehicleId?: string;\r\n vehicleName?: string;\r\n type?: AlertType;\r\n typeName?: string;\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n responsibleId?: string;\r\n responsibleName?: string;\r\n reading?: boolean | undefined;\r\n readingName?: string;\r\n page?: number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n hideVehicleFilter?: boolean;\r\n isDriver?: boolean;\r\n}\r\n\r\nconst AlertsFilters: React.FC = ({ filters, isDriver, onChange, onFilter, hideVehicleFilter }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { setValue, watch, getValues, control } = form;\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n const [typesOptions, setTypesOptions] = useState([]);\r\n const [statusOptions, setStatusOptions] = useState([]);\r\n const [responsiblesOptions, setResponsibles] = useState([]);\r\n const [readingOptions, setReadingOptions] = useState([]);\r\n const { driverId } = useParams<{ driverId: string }>();\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n if (!hideVehicleFilter) {\r\n const vehicles = await VehiclesService.catalog();\r\n setVehicles(vehicles);\r\n }\r\n setTypesOptions(\r\n Object.keys(AlertType).map(key => {\r\n const e = (AlertType as any)[key];\r\n return ({ label: t(('alerts.types.' + e as any)), value: e });\r\n })\r\n );\r\n setStatusOptions(\r\n Object.keys(AnnotationStatusEnum).map(key => {\r\n const e = (AnnotationStatusEnum as any)[key];\r\n return ({ label: t(('alerts.annotation_status.' + e as any).toLowerCase()), value: e });\r\n })\r\n );\r\n setReadingOptions([\r\n { label: t('alerts.list.all'), value: undefined },\r\n { label: t('alerts.list.reads'), value: true },\r\n { label: t('alerts.list.not_reads'), value: false }\r\n ]);\r\n\r\n const ro = await UsersService.getAllForCompany();\r\n setResponsibles((ro || []).map((x: UsersSelectItemDto) => ({ value: x.id || '', label: x.realName || '' })));\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list filters`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally{\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n startDate: undefined,\r\n endDate: undefined,\r\n vehicleId: undefined,\r\n vehicleName: undefined,\r\n type: undefined,\r\n typeName: undefined,\r\n responsibleId: isDriver && !Utils.isStringNullOrEmpty(driverId) ? driverId : undefined,\r\n responsibleName: undefined,\r\n reading: undefined,\r\n readingName: undefined\r\n });\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getValues('startDate')}\r\n defaultEndValue={getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n {!hideVehicleFilter && \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n form.setValue('vehicleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ? { label: vehiclesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"vehicleId\"\r\n defaultValue={form.getValues('vehicleId')} />\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('responsibleName', responsiblesOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={responsiblesOptions.find(x => x.value === value) ? { label: responsiblesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"responsibleId\"\r\n defaultValue={getValues('responsibleId')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n form.setValue('typeName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={typesOptions.find(x => x.value === value) ? { label: typesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"type\"\r\n defaultValue={form.getValues('type')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n form.setValue('readingName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={readingOptions.find(x => x.value === value) ? { label: readingOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"reading\"\r\n defaultValue={form.getValues('reading')} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(AlertsFilters);","import { useTranslation } from 'react-i18next';\r\nimport styles from './AlertsFiltersHeader.module.scss';\r\nimport { AlertsSearchCriteria } from 'api/alerts/models/AlertsSearchCriteria';\r\nimport React from 'react';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce/lib';\r\n\r\ntype Props = {\r\n //showReadOnly: boolean;\r\n //totals: AlertsTotalsDto;\r\n criteria: AlertsSearchCriteria;\r\n onChangeCriteria: (criteria: AlertsSearchCriteria) => void;\r\n //onShowReadOnlyChange: (readOnly: boolean) => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst AlertsFiltersHeader = ({ criteria, onChangeCriteria, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n onChangeCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n\r\n return (\r\n
\r\n {/* onShowReadOnlyChange(false)}\r\n >\r\n {t('alerts.list.not_all_read')}: {totals.totalNotRead}\r\n \r\n onShowReadOnlyChange(true)}\r\n >\r\n {t('alerts.list.all_read')}: {totals.totalRead}\r\n */}\r\n\r\n \r\n\r\n
\r\n );\r\n}\r\n\r\nexport default AlertsFiltersHeader;\r\n","import React, { useMemo, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport styles from './AlertsList.module.scss';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DATE_FORMAT_DEFAUT, DATE_TIME_FORMAT_DEFAULT, LOGGER_LOG_TYPE } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport Loading from 'common/services/Loading';\r\nimport AlertsService from 'api/alerts/AlertsService';\r\nimport { AlertsListItemDto } from 'api/alerts/models/AlertsListItemDto';\r\nimport CheckBox from 'common/components/checkBox/CheckBox';\r\nimport { updateTotals } from 'store/alerts/action';\r\nimport { AlertsSearchCriteria } from 'api/alerts/models/AlertsSearchCriteria';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { Reducers } from 'store/types';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport { getAlertTypeColor } from 'common/utils/AlertsUtils';\r\n\r\ntype Props = {\r\n alerts: AlertsListItemDto[];\r\n criteria: AlertsSearchCriteria;\r\n totalItems: number;\r\n onChangeCriteria: (criteria: AlertsSearchCriteria) => void;\r\n onReadAlert: () => Promise;\r\n vehicleId?: string | undefined;\r\n editable: boolean;\r\n onPageChangeCallback?: (page?:number,saveOnFilter?:boolean) => void;\r\n}\r\n\r\nconst AlertsList = ({ alerts, criteria, totalItems, vehicleId, onChangeCriteria, onReadAlert,onPageChangeCallback, editable }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasAlertsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ALERTS_READ']);\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n onChangeCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [ \r\n {\r\n name: t('alerts.list.alert_receiver_date'),\r\n renderCell: row =>
\r\n
{row.userName || '-'}
\r\n
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'a.created_date',\r\n hideOn: ['sm', 'md', 'lg'],\r\n },\r\n {\r\n name: t('alerts.list.type'),\r\n renderCell: row => (<>\r\n \r\n {row.subject ? t(`alerts.types.${row.type}` as any) : ''}\r\n \r\n
{row.subject}
\r\n \r\n ),\r\n onSearch: onTableFilter,\r\n searchField: 'a.type',\r\n },\r\n {\r\n name: t('alerts.list.message'),\r\n renderCell: row => (\r\n
\r\n

{row.message}

\r\n {/*

{row.annotationDescription}

*/}\r\n
\r\n ),\r\n onSearch: onTableFilter,\r\n searchField: 'a.message',\r\n hideOn: ['sm']\r\n }, \r\n {\r\n name: t('alerts.list.read'),\r\n renderCell: row => <>{(\r\n hasAlertsWritePolicy && editable ? : <>\r\n )}\r\n {row.readDate &&
{t('alerts.list.read')}: 
}\r\n ,\r\n width: 50,\r\n onSearch: onTableFilter,\r\n searchField: 'au.read_date is null'\r\n }\r\n ];\r\n\r\n if (!vehicleId) {\r\n cols.unshift(\r\n {\r\n renderCell: row =>\r\n
\r\n
\r\n
\r\n
\r\n
,\r\n width: 90,\r\n onlyImageColumn: true,\r\n hideOn: ['sm']\r\n },\r\n {\r\n name: t('alerts.list.vehicle'),\r\n renderCell: row =>\r\n
\r\n
{row.vehiclePlate}
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ? ' | ' : '') + (row.vehicleModelName ?? '') }
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'v.registration_number',\r\n width: '10%'\r\n }\r\n );\r\n }\r\n\r\n return cols;\r\n }, [onTableFilter]);\r\n\r\n const onPageChange = (page: number) => {\r\n if(onPageChangeCallback){onPageChangeCallback(page,false)}\r\n else{\r\n onChangeCriteria({\r\n ...criteria,\r\n page,\r\n });\r\n }\r\n }\r\n\r\n const navigate = (row: AlertsListItemDto, event: any) => {\r\n\r\n const url = navigateUrl(row);\r\n if (url!= '')\r\n {\r\n if (event.ctrlKey) {\r\n window.open(url, '_blank');\r\n }\r\n history.push(url);\r\n }\r\n }\r\n\r\n const navigateUrl= (row: AlertsListItemDto) =>{\r\n switch (row.type)\r\n {\r\n case 'VERIFICATION_NEW_ALERT': return `/vehicles/details/${row.vehicleId}/verifications/details/${row.referenceId}`;\r\n case 'ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT': return `/vehicles/details/${row.vehicleId}/verifications/details/${row.verificationId}`;\r\n case 'ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT': return `/vehicles/details/${row.vehicleId}/verifications/details/${row.verificationId}`\r\n case 'ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT': return `/vehicles/details/${row.vehicleId}/verifications/details/${row.verificationId}`\r\n case 'MAINTENANCE_NEW_ALERT': return `/vehicles/details/${row.vehicleId}/maintenances/details/${row.referenceId}`; \r\n case 'MAINTENANCE_PLANNED_ALERT': return `/vehicles/details/${row.vehicleId}/maintenances/details/${row.referenceId}`; \r\n case 'MAINTENANCE_NEW_ALERT': return `/vehicles/details/${row.vehicleId}/maintenances/details/${row.referenceId}`;\r\n case 'RESERVATION_NEW_ALERT': return `/reservations/search/${row.referenceId}`;\r\n case 'EXPENSE_NEW_ALERT': return `/vehicles/details/${row.vehicleId}/costs/details/${row.referenceId}`;\r\n case 'EXPENSE_TREATED_ALERT': return `/vehicles/details/${row.vehicleId}/costs/details/${row.referenceId}`;\r\n case 'EXPENSE_NOT_TREATED_ALERT': return `/vehicles/details/${row.vehicleId}/costs/details/${row.referenceId}`;\r\n case 'EXPENSE_REFUND_APPROVED_ALERT': return `/vehicles/details/${row.vehicleId}/costs/details/${row.referenceId}`;\r\n case 'EXPENSE_REFUND_REFUSED_ALERT': return `/vehicles/details/${row.vehicleId}/costs/details/${row.referenceId}`;\r\n case 'CONTRACT_INSURANCE_ALERT': return `/vehicles/details/${row.vehicleId}/contract/details/insurance/details/${row.referenceId}`;\r\n case 'CONTRACT_MAINTENANCE_ALERT': return `/vehicles/details/${row.vehicleId}/contract/details/maintenance/details/${row.referenceId}`;\r\n case 'CONTRACT_USE_ALERT': return `/vehicles/details/${row.vehicleId}/contract/details/use/details/${row.referenceId}`;\r\n default: \r\n return '';\r\n }\r\n }\r\n\r\n const readAlert = async (row: AlertsListItemDto, event: any) => {\r\n if(onPageChangeCallback){onPageChangeCallback(undefined,true)}\r\n if (row.readDate) {\r\n navigate(row, event);\r\n return;\r\n }\r\n\r\n try {\r\n Loading.show();\r\n if (hasAlertsWritePolicy) {\r\n await AlertsService.read(row.id);\r\n dispatch(updateTotals());\r\n }\r\n\r\n navigate(row, event);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n return (\r\n
\r\n readAlert(row, event)}\r\n allowHover={true}\r\n initialSearch={{ colField: 'a.created_date', isOrderAsc: false }}\r\n rowStyle={(row, _1, _2, colIndex) => ({\r\n //backgroundColor: colIndex > 0 ? row.color?.rowColor : colors.white,\r\n borderBottom: '1px solid #EAEAEA',\r\n })}\r\n className={styles.table}\r\n />\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default AlertsList;\r\n","import AlertsService from 'api/alerts/AlertsService';\r\nimport { AlertsListItemDto } from 'api/alerts/models/AlertsListItemDto';\r\nimport { AlertsSearchCriteria } from 'api/alerts/models/AlertsSearchCriteria';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { getAlertTypeColor, getSubjectTypeColor } from 'common/utils/AlertsUtils';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport AlertsFilters, { Filters } from 'screens/alerts/components/alertsFilters/AlertsFilters';\r\nimport AlertsFiltersHeader from 'screens/alerts/components/alertsFiltersHeader/AlertsFiltersHeader';\r\nimport AlertsList from 'screens/alerts/components/alertsList/AlertsList';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport styles from './CarAlertsTab.module.scss';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { VehicleDto } from 'api/vehicles/models/VehicleDto';\r\n\r\ntype Props = {\r\n vehicle?: VehicleDto;\r\n tourReRender: () => void;\r\n}\r\n\r\nconst CarAlertsTab = ({ vehicle, tourReRender }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { vehicleId } = useParams<{ vehicleId: string, itemType: string, itemId: string, tabId: string, type: string }>();\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'a.created_date',\r\n orderBy: 'desc',\r\n vehicleId, \r\n responsibleId: loggedUser?.id\r\n });\r\n const [alerts, setAlerts] = useState([]);\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [filters, setFilters] = useState({ responsibleId: criteria.responsibleId, responsibleName: loggedUser?.realName });\r\n const [filtersTotal, setFiltersTotal] = useState(!!loggedUser ? 1 : 0);\r\n //const [totals, setTotals] = useState({ totalNotRead: 0, totalNotReadOwn: 0, totalRead: 0, totalTreated: 0, totalNonTreated: 0, totalInterventionUrgent: 0, totalInformation: 0, totalIntervention: 0 });\r\n //const [showReadOnly, setShowReadOnly] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [alertsItems] = await Promise.all([\r\n AlertsService.getList({ ...criteria }), //AlertsService.getList({ ...criteria, readOnly: showReadOnly, notReadOnly: !showReadOnly }),\r\n //AlertsService.getTotals(criteria)\r\n ]);\r\n\r\n alertsItems.items.forEach(a => {\r\n a.colorType = getAlertTypeColor(a.type);\r\n a.color = getSubjectTypeColor(a.subject);\r\n });\r\n\r\n setTotalItems(alertsItems.totalItems);\r\n setAlerts(alertsItems.items);\r\n //setTotals(totalsResult);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n finally{\r\n tourReRender();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]); //}, [criteria, showReadOnly]);\r\n\r\n const onChangeFilters = (_filters: Filters) => {\r\n updateTotalFilters(_filters);\r\n setFilters(_filters);\r\n\r\n setCriteria({\r\n ...criteria,\r\n vehicleId: vehicleId,\r\n type: _filters.type,\r\n responsibleId: _filters.responsibleId,\r\n reading: _filters.reading,\r\n startDate: _filters.startDate,\r\n endDate: _filters.endDate,\r\n page: 1,\r\n });\r\n }\r\n\r\n const updateTotalFilters = (_filters: Filters) => {\r\n let total = 0;\r\n\r\n if (_filters.vehicleId) {\r\n total++;\r\n }\r\n if (_filters.type) {\r\n total++;\r\n }\r\n if (_filters.responsibleId) {\r\n total++;\r\n }\r\n if (_filters.startDate) {\r\n total++;\r\n }\r\n if (_filters.endDate) {\r\n total++;\r\n } \r\n if (_filters.reading !== undefined) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n hideVehicleFilter={true}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CarAlertsTab;","import React, { memo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './CarMonthlyChargesFiltersScreen.module.scss';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useForm } from 'react-hook-form';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport moment from 'moment';\r\n\r\nexport interface Filters {\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst CarMonthlyChargesFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { setValue, getValues } = form;\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n startDate: undefined,\r\n endDate: undefined,\r\n });\r\n onInputChange();\r\n onFilter(getValues());\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n dateFormat=\"MM/yyyy\"\r\n defaultStartValue={getValues('startDate')}\r\n defaultEndValue={getValues('endDate')}\r\n isDatePicker\r\n showMonthYearPicker\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(CarMonthlyChargesFiltersScreen);","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport styles from './CarMonthlyChargesTab.module.scss';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, DATE_FORMAT_MONTH_YEAR } from 'Config';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Loading from 'common/services/Loading';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport CarMonthlyChargesFiltersScreen, { Filters } from './components/CarMonthlyChargesFiltersScreen';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { VehicleMonthlyCostsDto } from 'api/vehicleMonthlyCosts/models/VehicleMonthlyCostsDto';\r\nimport { VehicleMonthlyCostsSearchCriteria } from 'api/vehicleMonthlyCosts/models/VehicleMonthlyCostsSearchCriteria';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport dayjs from 'dayjs';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\n\r\ntype Props = {\r\n tourReRender: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst CarMonthlyChargesTab = ({ tourReRender, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const { vehicleId } = useParams<{ vehicleId: string }>();\r\n\r\n const [chargePage, setChargePage] = useState | null>(null);\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: vehicleId,\r\n endDate: dayjs().endOf('month').toDate(),\r\n orderColumn: 'vmc.date',\r\n orderBy: 'desc'\r\n });\r\n\r\n const [filters, setFilters] = useState({ endDate: criteria.endDate });\r\n const [filtersTotal, setFiltersTotal] = useState(1);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n\r\n const getData = async () => {\r\n try {\r\n const charges = await VehiclesService.getMonthlyCosts(criteria);\r\n setChargePage(charges);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get charges list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n finally {\r\n tourReRender();\r\n }\r\n };\r\n\r\n const navigateToUrl = (type: string) => {\r\n let url = `/vehicles/details/${vehicleId}/`;\r\n switch (type.toUpperCase()) {\r\n case 'CHARGE': url += `costs`; break;\r\n case 'CONTRACT': url += `contract`; break;\r\n case 'MAINTENANCE': url += `maintenance`; break;\r\n default: return '';\r\n }\r\n return url + '/list/null/null/null/';\r\n }\r\n\r\n const onRowClick = (event: any, url: string) => {\r\n if (event.ctrlKey) {\r\n window.open(url, '_blank');\r\n return;\r\n }\r\n history.push(url);\r\n }\r\n\r\n const renderCostCell = (type: string, value: number, date: Date) => {\r\n return
onRowClick(event, navigateToUrl(type) + dayjs(date).format('YYYY-MM-01'))}>\r\n \r\n
\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('vehicle_monthly_costs.month', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row =>
,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n searchField: 'vmc.date'\r\n },\r\n {\r\n name: t('contracts.title'),\r\n renderCell: row => renderCostCell('contract', row.contractsCosts || 0, row.date),\r\n width: 200,\r\n hideOn: ['sm', 'md'],\r\n onSearch: onTableFilter,\r\n searchField: 'contracts_costs',\r\n columnCellAlignment: 'right'\r\n },\r\n {\r\n name: t('charges.title'),\r\n renderCell: row => renderCostCell('charge', row.chargesCosts || 0, row.date),\r\n width: 200,\r\n hideOn: ['sm', 'md'],\r\n onSearch: onTableFilter,\r\n searchField: 'charges_costs',\r\n columnCellAlignment: 'right'\r\n },\r\n {\r\n name: t('maintenances.title'),\r\n renderCell: row => renderCostCell('maintenance', row.maintenancesCosts || 0, row.date),\r\n width: 200,\r\n hideOn: ['sm', 'md'],\r\n onSearch: onTableFilter,\r\n searchField: 'maintenances_costs',\r\n columnCellAlignment: 'right'\r\n },\r\n {\r\n name: t('vehicle_monthly_costs.total', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n renderCell: row =>
,\r\n width: 200,\r\n onSearch: onTableFilter,\r\n searchField: 'total',\r\n columnCellAlignment: 'right'\r\n }\r\n ];\r\n return cols;\r\n }, []);\r\n\r\n const onPageChange = (page: number) => {\r\n setCriteria({ ...criteria, page: page });\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const onChangeFilters = (_filters: Filters) => {\r\n updateTotalFilters(_filters);\r\n setFilters(_filters);\r\n criteria.startDate = _filters.startDate;\r\n criteria.endDate = _filters.endDate;\r\n setCriteria({ ...criteria });\r\n }\r\n\r\n const updateTotalFilters = (_filters: Filters) => {\r\n let total = 0;\r\n if (_filters.startDate || _filters.endDate) {\r\n total++;\r\n }\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={updateTotalFilters}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n // \r\n\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CarMonthlyChargesTab;\r\n","export default __webpack_public_path__ + \"static/media/calendar.e5048986.svg\";","export default __webpack_public_path__ + \"static/media/drop.1689e32f.svg\";","export default __webpack_public_path__ + \"static/media/desktop_default_photo.5efa95be.svg\";","import styles from './HelperModal.module.scss'\r\n\r\ntype Props = {\r\n\ttitle?: string;\r\n\ttext?: string;\r\n\tchildren?: React.ReactElement;\r\n}\r\n\r\nconst HelperModal: React.FC = ({ title, text, children }: Props) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{/* */}\r\n\t\t\t
{title}
\r\n\t\t\t
{text}
\r\n\t\t\t{children}\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default HelperModal\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Tour from 'reactour';\r\nimport HelperModal from '../helperModal/HelperModal';\r\nimport Storage from '../../../common/services/Storage';\r\nimport { STORAGE } from 'Config';\r\n\r\nexport type Props = {\r\n steps: any[];\r\n isOpen: boolean;\r\n onRequestClose: () => void;\r\n changeTab?: (tab: string) => void;\r\n startAt?: number;\r\n reRender?: string;\r\n className?: string\r\n};\r\n\r\nconst InfoTour = ({ steps, isOpen, onRequestClose, changeTab, startAt, reRender, className }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const profile = Storage.getObject(STORAGE.AUTH_USER_PROFILE);\r\n const urlFaq = profile && profile.languageCode === 'fr' ? 'fr/questions-frequentes' :\r\n profile && profile.languageCode === 'pt' ? 'pt/faq' :\r\n 'eu/faq';\r\n const urlContacts = profile && profile.languageCode === 'fr' ? 'fr/contacts' :\r\n profile && profile.languageCode === 'pt' ? 'pt/contactos' :\r\n 'eu/contacts/';\r\n\r\n return (\r\n \r\n }]}\r\n isOpen={isOpen}\r\n onRequestClose={onRequestClose}\r\n //lastStepNextButton={}\r\n maskSpace={10}\r\n rounded={20}\r\n showNumber={false}\r\n accentColor={'#16E0CC'}\r\n startAt={startAt ?? 0}\r\n getCurrentStep={(curr: any) => {\r\n const step = steps[curr];\r\n if (step && step.tab && step.tab != '' && changeTab) {\r\n changeTab(step.tab);\r\n }\r\n }}\r\n update={reRender ?? ''}\r\n //showNavigation={false}\r\n />\r\n )\r\n}\r\n\r\nexport default InfoTour;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport styles from './VehicleScreen.module.scss';\r\nimport CarDocumentTab from './components/carDocumentTab/CarDocumentTab';\r\nimport CarContractTab from './components/carContractTab/CarContractTab';\r\nimport CarDashboardTab from './components/carDashboardTab/CarDashboardTab';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport CarForm from './components/carForm/CarForm'\r\nimport Logger from 'common/services/Logger';\r\nimport { DATE_FORMAT_DEFAUT, DATE_TIME_FORMAT_DEFAUT, FUELS, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport CarChargeTab from './components/carChargeTab/CarChargeTab';\r\nimport CarMaintenanceTab from './components/carMaintenanceTab/CarMaintenanceTab';\r\nimport CarVerificationTab from './components/carVerificationTab/CarVerificationTab';\r\nimport Loading from 'common/services/Loading';\r\nimport CarAccidentTab from './components/carAccidentTab/CarAccidentTab';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport CarGpsTab from './components/carGpsTab/CarGpsTab';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport CarAlertsTab from './components/carAlertsTab/CarAlertsTab';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport CarGlobalChargeTab from './components/carMonthlyChargesTab/CarMonthlyChargesTab';\r\nimport CalendarIcon from 'assets/svg/calendar.svg';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport DropIcon from 'assets/svg/drop.svg';\r\nimport TicketIcon from 'assets/svg/ticket.svg';\r\nimport FloorBrushIcon from 'assets/svg/floor-brush.svg';\r\nimport MediaIcon from 'assets/svg/Grupo_352.svg';\r\nimport UserIcon from 'assets/svg/desktop_default_photo.svg';\r\nimport ReserveIcon from 'assets/svg/calendar_v_routine.svg';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport Label from 'common/components/label/Label';\r\nimport dayjs from 'dayjs';\r\nimport AlertsCounter from 'common/components/alertsCounter/AlertsCounter';\r\nimport HelperModal from 'common/components/helperModal/HelperModal';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport InfoIcon from 'assets/svg/i_info_primaryDark.svg';\r\nimport InfoTour from 'common/components/info-tour/InfoTour';\r\nimport { VehicleConsumptionsResultDto } from 'api/vehicles/models/VehicleDto';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\n\r\nexport type Types = 'edit' | 'details' | 'new' | 'list';\r\n\r\nconst VehicleScreen = () => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { vehicleId, type, tabId, itemType, returnUrl } = useParams<{ vehicleId: string, type: Types, tabId: string, itemType: string, itemId: string, returnUrl: string }>();\r\n const { addToast } = useToasts();\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const [tabAux, setTabAux] = useState(tabId);\r\n const [item, setItem] = useState();\r\n const [consumationTotals, setConsumationTotals] = useState(undefined);\r\n const [averageEfficiencyTooltip, setAverageEfficiencyTooltip] = useState(undefined);\r\n const [averageCostTooltip, setAverageCostTooltip] = useState(undefined);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehiclesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLES_WRITE']);\r\n const hasVehiclesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLES_READ']);\r\n const hasContractsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CONTRACTS_READ']);\r\n const hasChargesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_CHARGES_READ']);\r\n const hasVehicleMaintenancesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_READ']);\r\n const hasAlertsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ALERTS_READ']);\r\n const hasVerificationsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VERIFICATIONS_READ']);\r\n const hasAccidentsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ACCIDENTS_READ']);\r\n const hasGpsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n const hasCountersPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['CHARGES_TOTAL_READ']);\r\n const hasDashboardPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_DASHBOARDS_READ']);\r\n\r\n const [tourOpen, setTourOpen] = useState(false);\r\n const steps = [\r\n {\r\n selector: '#first-step',\r\n content: ,\r\n tab: ''\r\n }\r\n ];\r\n\r\n const tabs: TabItem[] = [];\r\n const [tourReRender, setUpdate] = useState('0');\r\n const manageTourReRender = () => {\r\n setUpdate((parseInt(tourReRender) + 1).toString());\r\n }\r\n\r\n const init = () => {\r\n\r\n if (hasDashboardPolicy) {\r\n tabs.push({\r\n id: 'dashboard',\r\n title: t('vehicle.dashboard'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'dashboard'\r\n });\r\n }\r\n\r\n if (hasVehiclesWritePolicy || hasVehiclesReadPolicy) {\r\n tabs.push({\r\n id: 'informations',\r\n title: t('vehicle.car_document'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'informations'\r\n });\r\n }\r\n\r\n if (hasContractsReadPolicy) {\r\n tabs.push({\r\n id: 'contract',\r\n title: t('vehicle.contract'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'contract'\r\n });\r\n\r\n // steps.push({\r\n // selector: '#contracts-1',\r\n // content: ,\r\n // tab: 'contract'\r\n // });\r\n\r\n // steps.push({\r\n // selector: '#contracts-2',\r\n // content: ,\r\n // tab: 'contract'\r\n // });\r\n\r\n // steps.push({\r\n // selector: '#contracts-3',\r\n // content: ,\r\n // tab: 'contract'\r\n // });\r\n }\r\n\r\n if (hasChargesReadPolicy) {\r\n tabs.push({\r\n id: 'costs',\r\n title: t('vehicle.costs'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'costs'\r\n });\r\n }\r\n\r\n if (hasVehicleMaintenancesReadPolicy) {\r\n tabs.push({\r\n id: 'maintenance',\r\n title: t('vehicle.maintenance'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'maintenance'\r\n });\r\n }\r\n\r\n if (hasAlertsReadPolicy) {\r\n tabs.push({\r\n id: 'alerts',\r\n title: <>\r\n \r\n {t('vehicle.alerts')}\r\n {(item && (item.totalAlerts ?? 0) > 0) && }\r\n \r\n ,\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'alerts'\r\n });\r\n }\r\n\r\n if (hasGpsReadPolicy && item?.companyTrackingProvider && item?.companyTrackingProvider !== TrackingProvider.NONE && item.trackingDeviceId) {\r\n tabs.push({\r\n id: 'gps',\r\n title: t('vehicle.gps'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'gps'\r\n });\r\n }\r\n\r\n if (hasVerificationsReadPolicy) {\r\n tabs.push({\r\n id: 'verifications',\r\n title: t('vehicle.verifications'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'verifications'\r\n });\r\n }\r\n\r\n if (hasAccidentsReadPolicy) {\r\n tabs.push({\r\n id: 'accidents',\r\n title: t('vehicle.accidents'),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'accidents'\r\n });\r\n }\r\n\r\n if (hasChargesReadPolicy && hasVehicleMaintenancesReadPolicy && hasContractsReadPolicy && hasCountersPolicy) {\r\n tabs.push({\r\n id: 'monthlyCharges',\r\n title: t('vehicle.monthly_costs', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n content: \r\n });\r\n steps.push({\r\n selector: '#general-step',\r\n content: ,\r\n tab: 'monthlyCharges'\r\n });\r\n }\r\n\r\n }\r\n\r\n const getData = async () => {\r\n try {\r\n if (vehicleId) {\r\n Loading.show();\r\n const result = await VehiclesService.getById(vehicleId);\r\n if (!!result) {\r\n if (result.registrationNumberDate) {\r\n result.registrationNumberDate = new Date(result.registrationNumberDate);\r\n }\r\n\r\n const resultConsumation = await VehiclesService.getConsumptionCounters({\r\n itemsPerPage: 0, page: 0,\r\n vehicleId\r\n });\r\n setConsumationTotals(resultConsumation);\r\n if (resultConsumation) {\r\n if (resultConsumation.vehicleConsumptionsByFuel.length > 1) {\r\n let aux = '';\r\n resultConsumation.vehicleConsumptionsByFuel.forEach(x => {\r\n aux += (aux == '' ? '' : ' + ');\r\n aux += `${x.averageEfficiency.toFixed(2).replace('.', ',')} ${t((x.fuelName == FUELS.ELECTRIC ? 'vehicle.average_efficienc_eletric_unity' : 'vehicle.average_efficienc_unity') as any)}`;\r\n });\r\n setAverageEfficiencyTooltip(aux);\r\n } else {\r\n setAverageEfficiencyTooltip(undefined);\r\n }\r\n\r\n setAverageCostTooltip(`${resultConsumation.totalCost.toFixed(2).replace('.', ',')} € / ${resultConsumation.totalKilometers.toFixed(2).replace('.', ',')} kms = ${resultConsumation.averageCost.toFixed(2).replace('.', ',')} ${t('vehicle.costs_consumption_unit')}`);\r\n }\r\n }\r\n\r\n setItem(result);\r\n Loading.hide();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicle information `, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n\r\n const canAddVehicles = async () => {\r\n try {\r\n Loading.show();\r\n await VehiclesService.candAddVehicles();\r\n Loading.hide();\r\n } catch (error) {\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n history.push(`/account/details/subscription`);\r\n }\r\n }\r\n }\r\n\r\n const navigateToTab = (id: string) => {\r\n setTabAux(undefined);\r\n history.push(`/vehicles/details/${vehicleId}/${id}/list`);\r\n }\r\n\r\n const onClose = (result?: Types) => {\r\n if (vehicleId) {\r\n if (result === 'edit') {\r\n history.push(`/vehicles/details/${vehicleId}`);\r\n }\r\n }\r\n };\r\n\r\n const onDeleteFromList = () => {\r\n getData();\r\n }\r\n\r\n const showField = (feature: string) => {\r\n return (item?.segmentFeatures?.findIndex(x => x == feature) ?? -1) >= 0;\r\n }\r\n\r\n useEffect(() => {\r\n if (!vehicleId) {\r\n canAddVehicles();\r\n }\r\n getData();\r\n }, [vehicleId, tabId, itemType, type]);\r\n\r\n init();\r\n\r\n return (\r\n \r\n \r\n {type == 'new' &&\r\n \r\n }\r\n\r\n {item && type != 'new' &&\r\n <>\r\n \r\n {steps.length > 0 && \r\n setTourOpen(true)} />\r\n }\r\n \r\n \r\n
\r\n
\r\n {item &&
}\r\n {item.immobilized &&
\r\n
{t('vehicle.immobilized')}
\r\n
}\r\n
\r\n
\r\n
\r\n
{item?.registrationNumber} {!item.active && }
\r\n
{(item?.vehicleBrandName ?? '') + (' ') + (item?.vehicleModelName ?? '')}
\r\n
{item?.vehicleSegmentName + ((item.vehicleFuels?.length || item.colorName) ? ' | ': '')}\r\n {(item.vehicleFuels?.map((x, i) => (\r\n {t(('vehicle.fuels.' + x.fuelName) as any).toString()} | \r\n )))}\r\n {item?.colorName ? (t(('vehicle.colors.' + item?.colorName) as any)) : ''}
\r\n {Boolean(item?.vehicleLocals?.length) &&
{item?.vehicleLocals?.map(x => x.localName).join(', ')}
}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {(item && item.reservationAvailable && item.reservationStartDate && item.reservationEndDate)\r\n ? `${dayjs(item.reservationStartDate).format(DATE_FORMAT_DEFAUT)} — ${dayjs(item.reservationEndDate).format(DATE_FORMAT_DEFAUT)}`\r\n : '-'\r\n }\r\n
\r\n
\r\n\r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n
\r\n \r\n
\r\n
{item?.registrationNumberDate ? new Date(item.registrationNumberDate).toLocaleDateString([], { year: 'numeric', month: '2-digit' }) : ''}
\r\n
}\r\n\r\n\r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n
\r\n \r\n
\r\n
\r\n
}\r\n\r\n {hasGpsReadPolicy && item && !!item.currentKilometersTracking &&
\r\n
\r\n \r\n
\r\n
}\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n {showField(SEGMENT_FEATURES.FUEL) && !!consumationTotals &&\r\n consumationTotals.vehicleConsumptionsByFuel.length == 1 &&\r\n consumationTotals.vehicleConsumptionsByFuel.map((x, i) => (\r\n
\r\n
\r\n \r\n
\r\n
(x?.consommationMoyenneReference ?? 0) ? t('vehicle.consommation_moyenne_negative', { current_vehicle_consumption: x.consumption != undefined ? x.consumption.toFixed(2).replace('.', ',') + ' ' + t((x.fuelName == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any) : '-', reference_vehicle_consumption: (x?.consommationMoyenneReference.toFixed(2).replace('.', ',') ?? '-') + ' ' + t((x.fuelName == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any) }) : t('vehicle.consommation_moyenne_positive', { current_vehicle_consumption: x.consumption != undefined ? x.consumption.toFixed(2).replace('.', ',') + ' ' + t((x.fuelName == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any) : '-', reference_vehicle_consumption: (x?.consommationMoyenneReference.toFixed(2).replace('.', ',') ?? '-') + ' ' + t((x.fuelName == FUELS.ELECTRIC ? 'vehicle.eletric_consumption_unit' : 'vehicle.average_consumption_unit') as any) })) : ''}\r\n >\r\n {x.consumption != undefined && }\r\n {x.consumption != undefined &&
(x?.consommationMoyenneReference ?? 0) ? styles.pointRed : styles.pointGreen}`} />}\r\n {x.consumption == undefined && '-'}\r\n
\r\n\r\n
\r\n ))}\r\n\r\n {showField(SEGMENT_FEATURES.FUEL) && !!consumationTotals &&\r\n consumationTotals.vehicleConsumptionsByFuel.length > 1 &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n {consumationTotals.averageEfficiency != undefined && }\r\n {consumationTotals.averageEfficiency == undefined && '-'}\r\n
\r\n\r\n
\r\n }\r\n\r\n {showField(SEGMENT_FEATURES.FUEL) && !!consumationTotals &&
\r\n
\r\n \r\n
\r\n
\r\n {consumationTotals.averageCost != undefined && }\r\n {consumationTotals.averageCost == undefined && '-'}\r\n
\r\n\r\n
}\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{item?.lastCleaning ? : '-'}
\r\n
\r\n\r\n {hasCountersPolicy &&
\r\n
\r\n \r\n
\r\n
{item?.monthlyCostAverage ? : '-'}
\r\n
}\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n }\r\n\r\n \r\n setTourOpen(false)}\r\n changeTab={setTabAux}\r\n startAt={(tabAux ?? tabId ?? 'informations') != 'informations' ? steps.findIndex(x => x.tab == (tabAux ?? tabId ?? 'informations')) : 0}\r\n reRender={tourReRender}\r\n className={styles.tour}\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\nexport default VehicleScreen;","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleSegmentDto } from 'api/vehicleSegments/models/VehicleSegmentDto';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './VehicleSegmentsDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, SEGMENT_FEATURES } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport React from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport Utils from 'common/services/Utils';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Select from 'common/components/select/Select';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleSegmentsDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n const isDetails = type === 'details';\r\n\r\n const { register, handleSubmit, errors, reset, control, getValues } = useForm();\r\n\r\n const [vehicleSegment, setVehicleSegment] = useState(null);\r\n const [segmentFeatures, setSegmentFeatures] = useState([]);\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleSegmentsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_SEGMENTS_WRITE']);\r\n\r\n const onSubmit = async (formData: VehicleSegmentDto) => {\r\n try {\r\n if (!hasVehicleSegmentsWritePolicy) { return; }\r\n\r\n Loading.show();\r\n\r\n if (vehicleSegment != null) {\r\n vehicleSegment.name = formData.name;\r\n vehicleSegment.features = formData.features;\r\n await VehicleSegmentsService.update(vehicleSegment);\r\n } else {\r\n itemId = await VehicleSegmentsService.create(formData);\r\n getData();\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n history.push(`/settings/segments/details/${itemId}`);\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update vehicle segments`,\r\n error\r\n );\r\n }\r\n };\r\n\r\n const getData = async () => {\r\n\r\n const features = [];\r\n for (const feature in SEGMENT_FEATURES) {\r\n features.push({ value: feature, label: t(`vehicle_segments.feature_options.${feature}` as any) });\r\n }\r\n setSegmentFeatures(Utils.sortAlphabetically(features))\r\n\r\n if (itemId == null) {\r\n return;\r\n }\r\n\r\n Loading.show();\r\n try {\r\n const result = await VehicleSegmentsService.getById(itemId);\r\n setVehicleSegment(result);\r\n reset(result);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segment`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: VehicleSegmentDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await VehicleSegmentsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/segments/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const onGoBack = () => {\r\n if(vehicleSegment){\r\n reset(vehicleSegment);\r\n }\r\n history.goBack();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/segments/list`)} >\r\n \r\n \r\n {t('settings.vehicle_segments')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ( x.value )));\r\n }}\r\n value={value ? segmentFeatures.filter(x => value.find((y: any) => y === x.value)) : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"features\"\r\n defaultValue={getValues('features')} />\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default VehicleSegmentsDetails;\r\n","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleSegmentDto } from 'api/vehicleSegments/models/VehicleSegmentDto';\r\nimport { VehicleSegmentSearchCriteria } from 'api/vehicleSegments/models/VehicleSegmentSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './VehicleSegmentsList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport Utils from 'common/services/Utils';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleSegmentsList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [vehicleSegmentsPage, setVehicleSegmentsPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const showRemoveItemDialog = async (item: VehicleSegmentDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleSegmentsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_SEGMENTS_WRITE']);\r\n\r\n const renderFeaturesCell = (row: VehicleSegmentDto) => {\r\n if (!row.features?.length) {\r\n return <>;\r\n }\r\n const translatedFeatures = row.features.map(feature => t(`vehicle_segments.feature_options.${feature}` as any));\r\n const sortedFeatures = Utils.sortStringsAlphabetically(translatedFeatures);\r\n return <>\r\n {sortedFeatures.join(', ')}\r\n ;\r\n }\r\n\r\n const renderTableActionCell = (row: VehicleSegmentDto) => {\r\n return \r\n \r\n {t('common.details')}\r\n \r\n {hasVehicleSegmentsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasVehicleSegmentsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('vehicle_segments.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'vs.name'\r\n },\r\n {\r\n field: 'features',\r\n name: t('vehicle_segments.features'),\r\n // onSearch: onTableFilter,\r\n // searchField: 'vs.name',\r\n renderCell: renderFeaturesCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await VehicleSegmentsService.getList(criteria);\r\n setVehicleSegmentsPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segments list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await VehicleSegmentsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete vehicle segments`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasVehicleSegmentsWritePolicy && history.push(`/settings/segments/new`)} />}\r\n
\r\n
\r\n history.push(`/settings/segments/details/${row.id ?? ''}`)}\r\n onHref={row => `/settings/segments/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'vs.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default VehicleSegmentsList;\r\n","import VehicleSegmentsDetails from './components/vehicleSegmentsDetails/VehicleSegmentsDetails';\r\nimport VehicleSegmentsList from './components/vehicleSegmentsList/VehicleSegmentsList';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './VehicleSegmentsTab.module.scss';\r\n\r\nconst VehicleSegmentsTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default VehicleSegmentsTab;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './VehicleModelsFiltersScreen.module.scss';\r\nimport Button from '../../../../../../common/components/button/Button';\r\nimport FormItem from '../../../../../../common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../../../../common/types/SelectValueLabel';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport Select from 'common/components/select/Select';\r\nimport Label from 'common/components/label/Label';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\n\r\nexport interface Filters {\r\n brandId?: string;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst VehicleModelsFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n\r\n const [brandsOptions, setBrands] = useState([]);\r\n\r\n const getData = async () => {\r\n const brandsOptions = await\r\n VehicleBrandsService.catalog();\r\n setBrands(brandsOptions);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset();\r\n form.setValue('brandId', null);\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (filters: Filters) => {\r\n onFilter(filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={brandsOptions.find(x => x.value === value) ? { label: brandsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"brandId\"\r\n defaultValue={form.getValues('brandId')} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VehicleModelsFiltersScreen);","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleModelsService from 'api/vehicleModels/VehicleModelsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { VehicleModelsDto } from 'api/vehicleModels/models/VehicleModelsDto';\r\nimport { VehicleModelsSearchCriteria } from 'api/vehicleModels/models/VehicleModelsSearchCriteria';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport VehicleModelsFiltersScreen, { Filters } from '../vehicleModelsFilters/VehicleModelsFiltersScreen';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport styles from './VehicleModelList.module.scss';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleModelList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [vehicleModelsPage, setVehicleModelsPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const showRemoveItemDialog = (item: VehicleModelsDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleModelsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MODELS_WRITE']);\r\n\r\n const renderTableActionCell = (row: VehicleModelsDto) => {\r\n return \r\n \r\n {t('common.details')}\r\n \r\n {hasVehicleModelsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasVehicleModelsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('vehicle_models.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'vm.name'\r\n },\r\n {\r\n field: 'vehicleBrandName',\r\n name: t('vehicle_models.list.vehicle_brands'),\r\n onSearch: onTableFilter,\r\n searchField: 'vb.name'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await VehicleModelsService.getList(criteria);\r\n setVehicleModelsPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle models list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await VehicleModelsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete vehicle model`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const onChangeFilters = (filters: Filters) => {\r\n updateTotalFilters(filters);\r\n setFilters(filters);\r\n criteria.brandId = filters.brandId;\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (filters: Filters) => {\r\n let total = 0;\r\n\r\n if (filters.brandId && filters.brandId.length > 0) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(filters) }}\r\n onChange={filters => updateTotalFilters(filters)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasVehicleModelsWritePolicy && history.push(`/settings/models/new`)} /> }\r\n
\r\n
\r\n history.push(`/settings/models/details/${row.id ?? ''}`)}\r\n onHref={row => `/settings/models/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'vm.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default VehicleModelList;\r\n","import React from 'react';\r\nimport styles from './FormController.module.scss';\r\n\r\ntype Props = {\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst FormController: React.FC = ({ children, ...props }: Props) => {\r\n\r\n return (\r\n \r\n {children}\r\n
\r\n );\r\n}\r\n\r\nexport default FormController;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleModelsDto } from 'api/vehicleModels/models/VehicleModelsDto';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleModelsService from 'api/vehicleModels/VehicleModelsService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './VehicleModelDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport FormController from 'common/components/formController/FormController';\r\nimport { useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { useEffect, useState } from 'react';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport React from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleModelDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n\r\n const [brandList, setBrandList] = useState([]);\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const [vehicleModel, setVehicleModel] = useState(null);\r\n\r\n const form = useForm({ shouldUnregister: false, defaultValues: { ...vehicleModel } });\r\n\r\n const { register, handleSubmit, errors, reset } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleModelsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MODELS_WRITE']);\r\n\r\n const getData = async () => {\r\n Loading.show();\r\n\r\n try {\r\n if (itemId) {\r\n const model = await VehicleModelsService.getById(itemId);\r\n setVehicleModel(model);\r\n reset(model);\r\n }\r\n const brands = await VehicleBrandsService.catalog();\r\n setBrandList(brands);\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle model`, error);\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onSubmit = async (formData: VehicleModelsDto) => {\r\n try {\r\n Loading.show();\r\n\r\n if (vehicleModel != null) {\r\n await VehicleModelsService.update({ ...vehicleModel, ...formData });\r\n } else {\r\n itemId = await VehicleModelsService.create(formData);\r\n getData();\r\n }\r\n\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n history.push(`/settings/models/details/${itemId}`);\r\n } catch (error) {\r\n Loading.hide();\r\n \r\n if(error?.response?.status === 409){\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update vehicle model`, error);\r\n }\r\n };\r\n\r\n const showRemoveItemDialog = (item: VehicleModelsDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await VehicleModelsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/brands/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const onGoBack = () => {\r\n if(vehicleModel){\r\n reset(vehicleModel);\r\n }\r\n history.goBack();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/models/list`)}>\r\n \r\n \r\n {t('settings.vehicle_models')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n onGoBack()}\r\n />\r\n {type === 'details' && hasVehicleModelsWritePolicy &&\r\n showRemoveItemDialog({ id: vehicleModel?.id } as VehicleModelsDto)} />\r\n }\r\n {type === 'details' && hasVehicleModelsWritePolicy &&
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default VehicleModelDetails;\r\n","import VehicleModelList from './components/vehicleModelList/VehicleModelList';\r\nimport VehicleModelDetails from './components/vehicleModelDetails/VehicleModelDetails';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './VehicleModelTab.module.scss';\r\n\r\nconst VehicleModelTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default VehicleModelTab;","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleBrandDto } from 'api/vehicleBrands/models/VehicleBrandsDto';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './VehicleBrandsDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport React from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Select from 'common/components/select/Select';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleBrandsDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n const isDetails = type === 'details';\r\n\r\n const [vehicleBrand, setVehicleBrand] = useState(null);\r\n const [vehicleSegments, setVehicleSegments] = useState([]);\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const { register, handleSubmit, errors, reset, control, getValues } = useForm();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleBrandsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_BRANDS_WRITE']);\r\n\r\n const onSubmit = async (formData: VehicleBrandDto) => {\r\n try {\r\n if (!hasVehicleBrandsWritePolicy) { return; }\r\n\r\n Loading.show();\r\n\r\n if (vehicleBrand != null) {\r\n vehicleBrand.name = formData.name;\r\n vehicleBrand.segments = formData.segments;\r\n await VehicleBrandsService.update(vehicleBrand);\r\n } else {\r\n itemId = await VehicleBrandsService.create(formData);\r\n getData();\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n history.push(`/settings/brands/details/${itemId}`);\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update vehicle brand`,\r\n error\r\n );\r\n }\r\n };\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const segments = await VehicleSegmentsService.catalog();\r\n setVehicleSegments(segments);\r\n\r\n if (itemId) {\r\n const result = await VehicleBrandsService.getById(itemId);\r\n\r\n setVehicleBrand(result);\r\n reset(result);\r\n }\r\n }\r\n catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get vehicle brand`,\r\n error\r\n );\r\n }\r\n finally{\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: VehicleBrandDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await VehicleBrandsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/brands/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n const onGoBack = () => {\r\n if(vehicleBrand){\r\n reset(vehicleBrand);\r\n }\r\n history.goBack();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/brands/list`)} >\r\n \r\n \r\n {t('settings.vehicle_brands')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ( x.value )));\r\n }}\r\n value={value ? vehicleSegments.filter(x => value.find((y: any) => y === x.value)) : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"segments\"\r\n defaultValue={getValues('segments')} />\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default VehicleBrandsDetails;\r\n","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleBrandsSearchCriteria } from 'api/vehicleBrands/models/VehicleBrandsSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './VehicleBrandsList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { VehicleBrandDto } from 'api/vehicleBrands/models/VehicleBrandsDto';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst VehicleBrandsList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [vehicleBrandsPage, setVehicleBrandsPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleBrandsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_BRANDS_WRITE']);\r\n\r\n const showRemoveItemDialog = (item: VehicleBrandDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const renderSegmentsCell = (row: VehicleBrandDto) => <>\r\n {row.segmentNames?.join(', ')}\r\n ;\r\n\r\n const renderTableActionCell = (\r\n row: VehicleBrandDto,\r\n ) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasVehicleBrandsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasVehicleBrandsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('vehicle_brands.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'vb.name'\r\n },\r\n {\r\n field: 'segments',\r\n name: t('vehicle_brands.list.vehicle_segments'),\r\n renderCell: renderSegmentsCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n },\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await VehicleBrandsService.getList(criteria);\r\n setVehicleBrandsPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get vehicle brands list`,\r\n error\r\n );\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await VehicleBrandsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete vehicle brands`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasVehicleBrandsWritePolicy && history.push(`/settings/brands/new`)} /> }\r\n
\r\n
\r\n history.push(`/settings/brands/details/${row.id ?? ''}`)}\r\n onHref={row => `/settings/brands/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'vb.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n\r\n
\r\n );\r\n};\r\n\r\nexport default VehicleBrandsList;\r\n","import VehicleBrandsDetails from './components/vehicleBrandsDetails/VehicleBrandsDetails';\r\nimport VehicleBrandsList from './components/vehicleBrandsList/VehicleBrandsList';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './VehicleBrandsTab.module.scss';\r\n\r\nconst VehicleBrandsTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default VehicleBrandsTab;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { SupplierContactDto, SupplierDto, SupplierTypeDto } from 'api/suppliers/models/SupplierDto';\r\nimport Loading from 'common/services/Loading';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './SuppliersDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Controller, useFieldArray, useForm } from 'react-hook-form';\r\nimport { DEFAULT_EMAIL_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport GenericTypesService from 'api/genericTypes/GenericTypesService';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport InputController from 'common/components/input/InputController';\r\nimport Utils from 'common/services/Utils';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst SuppliersDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [typesList, setTypesList] = useState([]);\r\n const [supplier, setSupplier] = useState();\r\n\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const supplierContacts = useFieldArray({ control: form.control, name: 'supplierContacts', keyName: 'formId' as any });\r\n const { handleSubmit, errors, reset, control, getValues, setValue } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasSuppliersWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_WRITE']);\r\n const isDetails = type === 'details';\r\n const [supplierContactToRemoveIndex, setSupplierContactToRemoveIndex] = useState(null);\r\n const [showRemoveSupplierContact, setShowRemoveSupplierContact] = useState(false);\r\n const [supplierContactsIdsToRemove, setSupplierContactsIdsToRemove] = useState([]);\r\n const [loadedFormValues, setLoadedFormValues] = useState(false);\r\n\r\n const getTypes = async () => {\r\n Loading.show();\r\n try {\r\n const result = await GenericTypesService.catalogSupplier();\r\n const options = result.map(x => ({ ...x, name: x.label, label: x.isSystem ? t(`common.generic_types.${x.label}` as any) : x.label }));\r\n setTypesList(Utils.sortAlphabetically(options));\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog supplier types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const getSupplier = async () => {\r\n if (!itemId) {\r\n setLoadedFormValues(true);\r\n return;\r\n }\r\n Loading.show();\r\n try {\r\n const result = await SuppliersService.getById(itemId);\r\n reset(result);\r\n setSupplier(result);\r\n setLoadedFormValues(true);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog supplier types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: SupplierDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await SuppliersService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/suppliers/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const onAddMedia = (files: CustomFile[]) => {\r\n setValue('logo', files[0]);\r\n }\r\n\r\n const onRemoveMedia = () => {\r\n setValue('logo', []);\r\n setValue('removeAttachment', true);\r\n }\r\n\r\n useEffect(() => {\r\n getTypes();\r\n getSupplier();\r\n }, []);\r\n\r\n const onSubmit = async (formData: SupplierDto) => {\r\n try {\r\n\r\n if (!formData.name || !formData.supplierTypes || (formData.supplierTypes != null && formData.supplierTypes.length == 0)) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n\r\n if (supplier != null) {\r\n formData.id = supplier.id;\r\n await SuppliersService.update(formData, formData.logo ? [formData.logo] : []);\r\n } else {\r\n itemId = await SuppliersService.create(formData, formData.logo ? [formData.logo] : []);\r\n getSupplier();\r\n }\r\n\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n history.goBack();\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update supplier`, error);\r\n }\r\n };\r\n\r\n const onGoBack = () => {\r\n if (supplier) {\r\n reset(supplier);\r\n }\r\n history.goBack();\r\n }\r\n\r\n const addSupplierContact = () => {\r\n supplierContacts.append({\r\n id: null,\r\n description: '',\r\n name: undefined,\r\n email: undefined,\r\n phoneNumber: undefined\r\n });\r\n }\r\n\r\n const setRemoveSupplierContact = (index: number) => {\r\n setShowRemoveSupplierContact(true);\r\n setSupplierContactToRemoveIndex(index);\r\n }\r\n\r\n const removeSupplierContact = () => {\r\n if (supplierContactToRemoveIndex === null) return;\r\n\r\n if (supplierContacts.fields[supplierContactToRemoveIndex]?.id) {\r\n setSupplierContactsIdsToRemove([...supplierContactsIdsToRemove, supplierContacts.fields[supplierContactToRemoveIndex].id!]);\r\n }\r\n\r\n supplierContacts.remove(supplierContactToRemoveIndex);\r\n\r\n setShowRemoveSupplierContact(false);\r\n }\r\n\r\n const renderSupplierContact = () => {\r\n return supplierContacts && supplierContacts.fields.map((x, i) => {\r\n return (\r\n \r\n \r\n {i == 0 && }\r\n \r\n {errors.supplierContacts && errors.supplierContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 && }\r\n \r\n {!!errors.supplierContacts && errors.supplierContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 &&}\r\n \r\n {!!errors.supplierContacts && errors.supplierContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 && }\r\n \r\n {!!errors.supplierContacts && errors.supplierContacts.length > 0 && }\r\n \r\n \r\n {!isDetails && \r\n setRemoveSupplierContact(i)} />\r\n }\r\n )\r\n })\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/suppliers/list`)} >\r\n \r\n \r\n {t('settings.suppliers')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ({ typeId: x.value })));\r\n }}\r\n value={value ? typesList.filter(x => value.find((y: SupplierTypeDto) => y.typeId === x.value)) : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"supplierTypes\"\r\n rules={{ required: true }}\r\n defaultValue={getValues('supplierTypes')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {(!isDetails) && }\r\n
\r\n\r\n {supplierContacts.fields.length === 0 &&
\r\n {t('suppliers.without_supplier_contacts')}\r\n
}\r\n\r\n {loadedFormValues && renderSupplierContact()}\r\n \r\n
\r\n
\r\n
\r\n\r\n removeSupplierContact()}\r\n onNo={() => { setShowRemoveSupplierContact(false); setSupplierContactToRemoveIndex(null) }}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SuppliersDetails;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './SuppliersFiltersScreen.module.scss';\r\nimport Button from '../../../../../../common/components/button/Button';\r\nimport FormItem from '../../../../../../common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../../../../common/types/SelectValueLabel';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport GenericTypesService from '../../../../../../api/genericTypes/GenericTypesService';\r\nimport Select from 'common/components/select/Select';\r\nimport Label from 'common/components/label/Label';\r\nimport Utils from 'common/services/Utils';\r\n\r\nexport interface Filters {\r\n typeId?: string;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst SuppliersFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n\r\n const [typesOptions, setTypes] = useState([]);\r\n\r\n const getData = async () => {\r\n const typesOptions = await GenericTypesService.catalogSupplier();\r\n const options = typesOptions.map(x => ({ ...x, name: x.label, label: x.isSystem ? t(`common.generic_types.${x.label}` as any) : x.label }));\r\n setTypes(Utils.sortAlphabetically(options));\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset();\r\n form.setValue('typeId', null);\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (filters: Filters) => {\r\n onFilter(filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onChange(data?.value ?? null);\r\n onInputChange();\r\n }}\r\n value={typesOptions.find(x => x.value === value) ? { label: typesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"typeId\"\r\n defaultValue={form.getValues('typeId')} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(SuppliersFiltersScreen);","export default __webpack_public_path__ + \"static/media/semfoto.5184601a.svg\";","import { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { SupplierDto } from 'api/suppliers/models/SupplierDto';\r\nimport { SupplierSearchCriteria } from 'api/suppliers/models/SupplierSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './SuppliersList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport SuppliersFiltersScreen, { Filters } from '../suppliersFilters/SuppliersFiltersScreen';\r\nimport { useHistory } from 'react-router-dom';\r\nimport NoImage from 'assets/svg/semfoto.svg';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst SuppliersList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [suppliersPage, setSuppliersPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasSuppliersWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_WRITE']);\r\n\r\n const showRemoveItemDialog = (item: SupplierDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const renderTableActionCell = (\r\n row: SupplierDto,\r\n ) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasSuppliersWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasSuppliersWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n\r\n const renderImageDescCell = (row: SupplierDto) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {row.name}\r\n
\r\n
\r\n )\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('vehicle_segments.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 's.name',\r\n renderCell: renderImageDescCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await SuppliersService.getList(criteria);\r\n setSuppliersPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segments list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await SuppliersService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete supplier`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const onChangeFilters = (filters: Filters) => {\r\n updateTotalFilters(filters);\r\n setFilters(filters);\r\n criteria.typeId = filters.typeId;\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (filters: Filters) => {\r\n let total = 0;\r\n\r\n if (filters.typeId && filters.typeId.length > 0) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(filters) }}\r\n onChange={filters => updateTotalFilters(filters)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasSuppliersWritePolicy && history.push(`/settings/suppliers/new`)} />}\r\n
\r\n
\r\n `/settings/suppliers/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 's.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SuppliersList;\r\n","import SuppliersDetails from './components/suppliersDetails/SuppliersDetails';\r\nimport SuppliersList from './components/suppliersList/SuppliersList';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './SuppliersTab.module.scss';\r\n\r\nconst SuppliersTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default SuppliersTab;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { ColorResult, SketchPicker } from 'react-color';\r\nimport styles from './ColorPicker.module.scss';\r\n\r\ntype Props = {\r\n value: string;\r\n disabled?: boolean;\r\n onChangeColor: (color: string) => void;\r\n};\r\n\r\nconst ColorPicker: React.FC = ({ value, disabled, onChangeColor }: Props) => {\r\n\r\n const ref = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const changeColor = (data: ColorResult) => {\r\n onChangeColor && onChangeColor(data.hex);\r\n };\r\n\r\n const handleClickOutside = (event: any) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('click', handleClickOutside, true);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside, true);\r\n };\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
!disabled && setIsOpen(true)}>
\r\n {\r\n if (e.currentTarget.value && !e.currentTarget.value.startsWith('#')) {\r\n onChangeColor('#' + e.currentTarget.value);\r\n }\r\n else {\r\n onChangeColor(e.currentTarget.value);\r\n }\r\n }} />\r\n
\r\n {isOpen &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default ColorPicker;","import React from 'react';\r\nimport ColorPicker from './ColorPicker';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n name: string;\r\n disabled?: boolean;\r\n};\r\n\r\nconst ColorPickerController = ({ form, name, disabled, ...props }: Props) => {\r\n return (\r\n {\r\n return (\r\n \r\n );\r\n }}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || ''}\r\n />\r\n );\r\n};\r\n\r\nexport default ColorPickerController;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { GenericTypeDto, GenericTypeIconDto } from 'api/genericTypes/models/GenericTypeDto';\r\nimport Loading from 'common/services/Loading';\r\nimport GenericTypesService from 'api/genericTypes/GenericTypesService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './GenericTypesDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport React, { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport InputController from 'common/components/input/InputController';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ColorPickerController from 'common/components/colorPicker/ColorPickerController';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport RenderSVG from 'common/components/renderSVG/RenderSVG';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst GenericTypesDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n\r\n const [genericType, setGenericType] = useState();\r\n const [defaultIcons, setDefaultIcons] = useState();\r\n const [iconSelected, setIconSelected] = useState();\r\n const [isDetails, setIsDetails] = useState(true);\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, errors, reset } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasGenericTypesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_WRITE']);\r\n\r\n const getGenericType = async () => {\r\n if (!itemId) {\r\n const icons = await GenericTypesService.catalogIcons();\r\n setDefaultIcons(icons);\r\n return;\r\n }\r\n\r\n Loading.show();\r\n try {\r\n const result = await GenericTypesService.getById(itemId);\r\n const icons = await GenericTypesService.catalogIcons();\r\n setDefaultIcons(icons);\r\n\r\n if (result) {\r\n if (result.iconSvg && icons?.length) {\r\n const selectedIcon = icons.find(x => x.svg == result.iconSvg);\r\n setIconSelected(selectedIcon);\r\n }\r\n\r\n if (result.isSystem) {\r\n setIsDetails(true);\r\n result.name = t('common.generic_types.' + result.name as any);\r\n }\r\n }\r\n\r\n reset(result);\r\n setGenericType(result);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog genericType types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: GenericTypeDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await GenericTypesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/genericTypes/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getGenericType();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setIsDetails(type === 'details');\r\n }, [type]);\r\n\r\n const onSubmit = async (formData: GenericTypeDto) => {\r\n try {\r\n\r\n if (!formData.name) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n\r\n formData.iconSvg = iconSelected?.svg;\r\n\r\n if (genericType != null) {\r\n formData.id = genericType.id;\r\n await GenericTypesService.update(formData);\r\n } else {\r\n itemId = await GenericTypesService.create(formData);\r\n getGenericType();\r\n }\r\n\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n history.goBack();\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update genericType`, error);\r\n }\r\n };\r\n\r\n const onGoBack = () => {\r\n if (genericType) {\r\n reset(genericType);\r\n if (genericType.iconSvg && defaultIcons?.length) {\r\n const selectedIcon = defaultIcons.find(x => x.svg == genericType.iconSvg);\r\n setIconSelected(selectedIcon);\r\n }\r\n }\r\n history.goBack();\r\n }\r\n\r\n const IconSelector = () => {\r\n return
\r\n {defaultIcons?.map(icon => isDetails ? undefined : setIconSelected(icon)}\r\n className={`${styles.iconDiv} ${isDetails ? styles.disabled : ''} ${iconSelected?.name == icon.name ? styles.selected : ''}`}>\r\n \r\n
)}\r\n
\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/genericTypes/list`)} >\r\n \r\n \r\n {t('settings.generic_types')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {IconSelector()}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GenericTypesDetails;\r\n","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { GenericTypeDto } from 'api/genericTypes/models/GenericTypeDto';\r\nimport { GenericTypeSearchCriteria } from 'api/genericTypes/models/GenericTypeSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport GenericTypesService from 'api/genericTypes/GenericTypesService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './GenericTypesList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport Utils from 'common/services/Utils';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst GenericTypesList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const itemsPerPage = 99; // custom pagination\r\n\r\n const [genericTypesPage, setGenericTypesPage] = useState>();\r\n const [originalGenericTypesPage, setoriginalGenericTypesPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: itemsPerPage,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasGenericTypesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GENERIC_TYPES_WRITE']);\r\n\r\n const showRemoveItemDialog = (item: GenericTypeDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n // setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n if (originalGenericTypesPage) {\r\n const genericTypesFiltered = { ...originalGenericTypesPage };\r\n genericTypesFiltered.items = Utils.sortAlphabetically(originalGenericTypesPage?.items, !isFilterAsc, 'name');\r\n setGenericTypesPage(genericTypesFiltered);\r\n }\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n if (value) {\r\n if (originalGenericTypesPage) {\r\n const genericTypesFiltered = { ...originalGenericTypesPage };\r\n genericTypesFiltered.items = originalGenericTypesPage?.items.filter(x => x.name.toLowerCase().includes(value.toLowerCase())) || [];\r\n genericTypesFiltered.totalItems = genericTypesFiltered.items.length;\r\n setGenericTypesPage(genericTypesFiltered);\r\n }\r\n }\r\n else {\r\n getData();\r\n }\r\n }, 500);\r\n\r\n const renderTableActionCell = (\r\n row: GenericTypeDto,\r\n ) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasGenericTypesWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasGenericTypesWritePolicy && showRemoveItemDialog(row)} disabled={row.isSystem}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const renderNameCell = (row: GenericTypeDto) => {\r\n return
{row.name}
\r\n }\r\n\r\n const renderColorCell = (row: GenericTypeDto) => {\r\n return
\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n width: '22px',\r\n field: 'color',\r\n searchField: 'gt.color',\r\n renderCell: renderColorCell\r\n },\r\n {\r\n field: 'name',\r\n name: t('generic_types.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'gt.name',\r\n renderCell: renderNameCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await GenericTypesService.getList(criteria);\r\n if (page?.items?.length) {\r\n page.items.map(x => {\r\n if (x.isSystem) {\r\n x.name = t('common.generic_types.' + x.name as any)\r\n }\r\n });\r\n }\r\n setGenericTypesPage(page);\r\n setoriginalGenericTypesPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segments list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await GenericTypesService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete genericType`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n useEffect(() => {\r\n onTableFilter('name', true);\r\n }, [originalGenericTypesPage]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasGenericTypesWritePolicy && history.push(`/settings/genericTypes/new`)} />}\r\n
\r\n
\r\n `/settings/genericTypes/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 's.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n itemsPerPage={itemsPerPage}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default GenericTypesList;\r\n","import GenericTypesDetails from './components/genericTypesDetails/GenericTypesDetails';\r\nimport GenericTypesList from './components/genericTypesList/GenericTypesList';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './GenericTypesTab.module.scss';\r\n\r\nconst GenericTypesTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default GenericTypesTab;\r\n"," import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\n import { RoleSearchCriteria } from './models/RoleSearchCriteria';\r\n import { RoleDto } from './models/RoleDto';\r\n\r\nclass RoleService {\r\n\r\n \r\n public getList(criteria: RoleSearchCriteria) {\r\n return Http.get>('roles', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('roles/' + id);\r\n }\r\n \r\n public create(model: RoleDto) {\r\n return Http.post('roles', model);\r\n }\r\n\r\n public update(model: RoleDto) {\r\n return Http.put('roles', model);\r\n }\r\n\r\n public remove(model: RoleDto) {\r\n return Http.put('roles/deactivate', model);\r\n }\r\n \r\n public getAllForCompany() {\r\n return Http.get('roles/all');\r\n }\r\n\r\n}\r\n\r\nexport default new RoleService();"," import Http from '../../common/services/Http';\r\n import { CommunicationDto } from './models/CommunicationDto';\r\n\r\nclass CommunicationService {\r\n\r\n public getAllForCompany() {\r\n return Http.get(`communications`);\r\n }\r\n\r\n public update(model: CommunicationDto[]) {\r\n return Http.put('communications', { communications : model });\r\n }\r\n\r\n}\r\n\r\nexport default new CommunicationService();","export interface CommunicationDto { \r\n id: string; \r\n name: string;\r\n expression: string;\r\n concatType?: CommunicationConcatType;\r\n}\r\n\r\nexport enum CommunicationConcatType {\r\n OR = 'OR',\r\n AND = 'AND',\r\n}\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport React, { useEffect, useState } from 'react';\r\nimport styles from './CommunicationsDetails.module.scss'\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport UsersService from 'api/users/UsersService';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport CommunicationsService from 'api/communications/CommunicationsService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport CheckBox from 'common/components/checkBox/CheckBox';\r\nimport { CommunicationConcatType, CommunicationDto } from 'api/communications/models/CommunicationDto';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport Button from 'common/components/button/Button';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce/lib';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst CommunicationsDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [usersList, setUsersList] = useState([]);\r\n const [communicationsList, setCommunicationsList] = useState([]);\r\n const [rolesList, setRolesList] = useState([]);\r\n const [communication, setCommunication] = useState();\r\n const [filterCommunication, setFilterCommunication] = useState('');\r\n const [filterUser, setFilterUser] = useState('');\r\n const [filterRole, setFilterRole] = useState('');\r\n const [usersListFiltered, setUsersListFiltered] = useState([]);\r\n const [communicationsListFiltered, setCommunicationsListFiltered] = useState([]);\r\n const [rolesListFiltered, setRolesListFiltered] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCommunicationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_COMMUNICATIONS_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const users = await UsersService.getAllForCompany();\r\n setUsersList(users);\r\n const roles = await RolesService.getAllForCompany();\r\n setRolesList(roles);\r\n const communications = await CommunicationsService.getAllForCompany();\r\n setCommunicationsList(communications);\r\n if (communications.length >= 1) {\r\n onCommunicationSelected(communications[0], users, roles);\r\n }\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get roles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const roleName = (role: RoleDto): string => {\r\n if (role.system === true || role.readOnly === true) {\r\n return t(('common.roles.' + role.name) as any)\r\n }\r\n else {\r\n return role.name;\r\n }\r\n }\r\n\r\n const onCommunicationSelected = async (communication: CommunicationDto, users: UsersSelectItemDto[], roles: RoleDto[]) => {\r\n setCommunication({ ...communication });\r\n parseCommunicationFromExpression(communication, users, roles);\r\n }\r\n\r\n const parseCommunicationFromExpression = async (communication: CommunicationDto, users: UsersSelectItemDto[], roles: RoleDto[]) => {\r\n const andOrRegex = /\\((.*)\\)(AND|OR)\\((.*)\\)/gi;\r\n const andOrMatch = andOrRegex.exec(communication?.expression);\r\n if (andOrMatch) {\r\n // AND / OR\r\n const andOr = andOrMatch[2];\r\n if (andOr.toUpperCase() === CommunicationConcatType.AND) {\r\n communication.concatType = CommunicationConcatType.AND;\r\n } else if (andOr.toUpperCase() === CommunicationConcatType.OR) {\r\n communication.concatType = CommunicationConcatType.OR;\r\n }\r\n }\r\n\r\n setCommunication({ ...communication });\r\n\r\n // Users\r\n users.forEach(x => x.checked = false);\r\n\r\n const usersExpression = andOrMatch ? andOrMatch[1] : communication.expression?.replace(/\\(/g, '').replace(/\\)/g, '');\r\n const usersRegex = /I:([^\\s]+)/gi;\r\n const usersMatchArray = [];\r\n let usersMatch = usersRegex.exec(usersExpression);\r\n while (usersMatch != null) {\r\n usersMatchArray.push(usersMatch[1]);\r\n usersMatch = usersRegex.exec(usersExpression);\r\n }\r\n\r\n if (usersMatchArray && usersMatchArray.length > 0) {\r\n if (usersMatchArray.length === 1 && usersMatchArray[0] === '*') {\r\n if (filterUser === '') {\r\n users.forEach((e: UsersSelectItemDto) => {\r\n e.checked = true;\r\n });\r\n } else {\r\n users.filter(c => usersListFiltered?.find(e => e.id === c.id) != null).forEach((e: UsersSelectItemDto) => {\r\n e.checked = true;\r\n });\r\n }\r\n } else {\r\n usersMatchArray.forEach(userName => {\r\n const user = users.find(u => u.userName === userName);\r\n if (user) {\r\n user.checked = true;\r\n }\r\n });\r\n }\r\n }\r\n setUsersList([...users]);\r\n\r\n // Roles\r\n roles.forEach(x => x.checked = false);\r\n\r\n const rolesExpression = andOrMatch ? andOrMatch[3] : communication.expression?.replace(/\\(/g, '').replace(/\\)/g, '');\r\n const rolesRegex = /R:([^\\s]+)/gi;\r\n\r\n const rolesMatchArray = [];\r\n let rolesMatch = rolesRegex.exec(rolesExpression);\r\n while (rolesMatch != null) {\r\n rolesMatchArray.push(rolesMatch[1]);\r\n rolesMatch = rolesRegex.exec(rolesExpression);\r\n }\r\n\r\n if (rolesMatchArray && rolesMatchArray.length > 0) {\r\n if (rolesMatchArray.length === 1 && rolesMatchArray[0] === '*') {\r\n\r\n if (filterRole === '') {\r\n rolesList.forEach((r: RoleDto) => {\r\n r.checked = true;\r\n });\r\n } else {\r\n rolesList.filter(c => rolesListFiltered?.find(e => e.id === c.id) != null).forEach((r: RoleDto) => {\r\n r.checked = true;\r\n });\r\n }\r\n\r\n } else {\r\n rolesMatchArray.forEach(userRole => {\r\n const role = roles.find(r => r.id === userRole);\r\n if (role) {\r\n role.checked = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n setRolesList([...roles]);\r\n }\r\n\r\n const onSave = async () => {\r\n try {\r\n Loading.show();\r\n\r\n if (communicationsList != null) {\r\n await CommunicationsService.update(communicationsList);\r\n }\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update communication`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const createExpression = (communication: CommunicationDto) => {\r\n // Users\r\n const users = usersList.filter((e: UsersSelectItemDto) => {\r\n return e.checked === true;\r\n });\r\n const usersExpression = users.map((u: UsersSelectItemDto) => {\r\n return 'I:' + u.userName;\r\n });\r\n const usersString = isAllUsersChecked(false) ? '(I:*)' : usersExpression && usersExpression.length > 0 ? '(' + usersExpression.join(' OR ') + ')' : '';\r\n\r\n // Roles\r\n const roles = rolesList.filter((r: RoleDto) => {\r\n return r.checked === true;\r\n });\r\n const rolesExpression = roles ? roles.map((r: RoleDto) => {\r\n return 'R:' + r.id;\r\n }) : [];\r\n\r\n const rolesString = isAllRolesChecked(false) ? '(R:*)' : rolesExpression && rolesExpression.length > 0 ? '(' + rolesExpression.join(' OR ') + ')' : '';\r\n const andOr = communication.concatType && communication.concatType === CommunicationConcatType.OR ? CommunicationConcatType.OR : CommunicationConcatType.AND;\r\n\r\n // Result\r\n if (usersString && rolesString) {\r\n communication.expression = usersString + andOr + rolesString;\r\n } else if (usersString && !rolesString) {\r\n communication.expression = usersString;\r\n } else if (!usersString && rolesString) {\r\n communication.expression = rolesString;\r\n } else {\r\n communication.expression = '';\r\n }\r\n\r\n setCommunicationsList([\r\n ...communicationsList.map(r => {\r\n if (r.id === communication.id) {\r\n r.expression = communication.expression;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n }\r\n\r\n const debouncedCommunication = useDebouncedCallback((value: string) => {\r\n setFilterCommunication(value);\r\n const communications = communicationsList.filter(item => {\r\n return t(('communications.types.' + item.name) as any).removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1;\r\n });\r\n setCommunicationsListFiltered(communications);\r\n }, 500);\r\n\r\n const debouncedUser = useDebouncedCallback((value: string) => {\r\n setFilterUser(value);\r\n const users = usersList.filter(item => {\r\n return item.realName.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n || item.userName.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n });\r\n setUsersListFiltered(users);\r\n }, 500);\r\n\r\n const debouncedRole = useDebouncedCallback((value: string) => {\r\n setFilterRole(value);\r\n const roles = rolesList.filter(item => {\r\n return item.name.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n });\r\n setRolesListFiltered(roles);\r\n }, 500);\r\n\r\n const setAnd = () => {\r\n if (communication) {\r\n communication.concatType = CommunicationConcatType.AND;\r\n setCommunication(communication);\r\n createExpression(communication);\r\n setCommunication({ ...communication });\r\n }\r\n }\r\n\r\n const setOr = () => {\r\n if (communication) {\r\n communication.concatType = CommunicationConcatType.OR;\r\n setCommunication(communication);\r\n createExpression(communication);\r\n setCommunication({ ...communication });\r\n }\r\n }\r\n\r\n const isAllUsersChecked = (checkFiltered: boolean) => {\r\n if (checkFiltered) {\r\n return filterUser != '' && usersListFiltered.length > 0 && usersListFiltered?.every(_ => _.checked);\r\n }\r\n return usersList?.length > 0 && usersList?.every(_ => _.checked);\r\n }\r\n\r\n const onAllUsersChecked = (checked: boolean) => {\r\n selectOrUnSelectUsers(checked, filterUser != '');\r\n if (communication) {\r\n createExpression(communication);\r\n }\r\n }\r\n\r\n const selectOrUnSelectUsers = async (checked: boolean, filter: boolean) => {\r\n if (!filter) {\r\n usersList.forEach((e: UsersSelectItemDto) => {\r\n e.checked = checked;\r\n });\r\n\r\n } else {\r\n usersList.filter(c => usersListFiltered?.find(e => e.id === c.id) != null).forEach((e: UsersSelectItemDto) => {\r\n e.checked = checked;\r\n });\r\n }\r\n setUsersList([...usersList]);\r\n }\r\n\r\n const isAllRolesChecked = (checkFiltered: boolean) => {\r\n if (checkFiltered) {\r\n return filterRole != '' && rolesListFiltered.length > 0 && rolesListFiltered?.every(_ => _.checked);\r\n }\r\n return rolesList?.length > 0 && rolesList?.every(_ => _.checked);\r\n }\r\n\r\n const onAllRolesChecked = (checked: boolean) => {\r\n selectOrUnSelectRoles(checked, filterRole != '');\r\n if (communication) {\r\n createExpression(communication);\r\n }\r\n }\r\n\r\n const selectOrUnSelectRoles = (checked: boolean, filter: boolean) => {\r\n if (!filter) {\r\n rolesList.forEach((r: RoleDto) => {\r\n r.checked = checked;\r\n });\r\n } else {\r\n rolesList.filter(c => rolesListFiltered?.find(e => e.id === c.id) != null).forEach((r: RoleDto) => {\r\n r.checked = checked;\r\n });\r\n }\r\n setRolesList([...rolesList]);\r\n }\r\n\r\n return (\r\n
\r\n {communication &&\r\n (communication.name == 'EXPENSE_TREATED_ALERT'\r\n || communication.name == 'EXPENSE_TREATED_EMAIL'\r\n || communication.name == 'EXPENSE_NOT_TREATED_ALERT'\r\n || communication.name == 'EXPENSE_NOT_TREATED_EMAIL')\r\n && \r\n {t('communications.message.alert_charges')}\r\n }\r\n {communication &&\r\n (communication.name == 'MAINTENANCE_PLANNED_ALERT'\r\n || communication.name == 'MAINTENANCE_PLANNED_EMAIL')\r\n && \r\n {t('communications.message.alert_maintenances')}\r\n }\r\n {communication &&\r\n (communication.name == 'EXPENSE_REFUND_APPROVED_ALERT'\r\n || communication.name == 'EXPENSE_REFUND_APPROVED_EMAIL'\r\n || communication.name == 'EXPENSE_REFUND_REFUSED_ALERT'\r\n || communication.name == 'EXPENSE_REFUND_REFUSED_EMAIL')\r\n && \r\n {t('communications.message.alert_charges_refund')}\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterCommunication != '' ? communicationsListFiltered : communicationsList).map((row, rowIndex) => (\r\n onCommunicationSelected(row, usersList, rolesList)}>\r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('communications.title')}\r\n
\r\n
\r\n
{t(('communications.types.' + row.name) as any)}
\r\n
\r\n
\r\n
\r\n { /*################## Users ################## */}\r\n
\r\n {/*

{t('users.title')}

*/}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterUser != '' ? usersListFiltered : usersList).map((row, rowIndex) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('users.title')}\r\n { onAllUsersChecked(e.target.checked) }} disabled={!hasCommunicationsWritePolicy} />\r\n
\r\n
\r\n
\r\n {row.realName}\r\n ({row.userName})\r\n
\r\n
\r\n {\r\n setUsersList([\r\n ...usersList.map(r => {\r\n if (r.id === row.id) {\r\n r.checked = e.target.checked;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n if (communication) {\r\n createExpression(communication);\r\n }\r\n }}\r\n checked={row.checked || false}\r\n key={row.id}\r\n disabled={!hasCommunicationsWritePolicy}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n { /*################## Roles ################## */}\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterRole != '' ? rolesListFiltered : rolesList).map((row, rowIndex) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('roles.title')}\r\n { onAllRolesChecked(e.target.checked) }} disabled={!hasCommunicationsWritePolicy} />\r\n
\r\n
\r\n
\r\n {roleName(row)}\r\n
\r\n
\r\n {\r\n setRolesList([\r\n ...rolesList.map(r => {\r\n if (r.id === row.id) {\r\n r.checked = e.target.checked;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n if (communication) {\r\n createExpression(communication);\r\n }\r\n }}\r\n checked={row.checked || false}\r\n key={row.id}\r\n disabled={!hasCommunicationsWritePolicy}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n {hasCommunicationsWritePolicy &&
\r\n
\r\n );\r\n};\r\n\r\nexport default CommunicationsDetails;\r\n","import CommunicationsDetails from './components/communicationsDetails/CommunicationsDetails';\r\n\r\nconst CommunicationsTab = () => { \r\n\r\n return ( );\r\n}\r\n\r\nexport default CommunicationsTab;\r\n","import { LanguageDto } from 'api/languages/models/LanguageDto';\r\nimport { ReactNode } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaExclamationTriangle, FaLanguage } from 'react-icons/fa';\r\nimport styles from './LanguagesTab.module.scss';\r\n\r\ntype Props = {\r\n selectedLanguageIndex: number;\r\n languages: LanguageDto[];\r\n onChange: (language: LanguageDto, i: number) => void;\r\n children: ReactNode | ReactNode[] | ((lang: LanguageDto, index: number) => (ReactNode | ReactNode[]));\r\n functional?: boolean;\r\n}\r\n\r\nconst LanguagesTab = ({ selectedLanguageIndex, languages, onChange, children, functional }: Props) => {\r\n const { t } = useTranslation();\r\n \r\n return (\r\n
\r\n
\r\n {languages.map((lang, i) => (\r\n onChange(lang, i)}\r\n >\r\n {lang.invalid && }\r\n {lang.isDefault && }\r\n {lang.name}\r\n
\r\n ))}\r\n
\r\n
\r\n {functional && children ? languages.map(children as any) : children}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LanguagesTab;\r\n","import React, { useState } from 'react';\r\nimport { FaChevronDown, FaChevronRight } from 'react-icons/fa';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport styles from './ContentManagement.module.scss';\r\nimport SelectController from '../select/SelectController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Button from '../button/Button';\r\n\r\n\r\ntype Props = {\r\n options: SelectValueLabel[];\r\n onCopy: (value: string) => void;\r\n isInnerContainer?: boolean;\r\n};\r\n\r\nconst ContentManagement = ({ options, isInnerContainer, onCopy }: Props) => {\r\n\r\n const { t } = useTranslation();\r\n const form = useForm();\r\n \r\n const [openContent, setOpenContent] = useState(false);\r\n const [optionSelected, setOptionSelected] = useState();\r\n\r\n return (\r\n
\r\n
setOpenContent(!openContent)}> \r\n {t('content_management.description')}\r\n { !openContent && }\r\n { openContent && }\r\n
\r\n\r\n {openContent && \r\n
\r\n input ? candidate.label.toUpperCase().includes(input.toUpperCase()) : true}\r\n onChangeSelect={opt => setOptionSelected(opt)}\r\n minWidth=\"15rem\"\r\n />\r\n\r\n onCopy(optionSelected.value) : undefined} />\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default ContentManagement;","import React, { memo, useState } from 'react';\r\nimport styles from './SummernoteController.module.scss';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ReactQuill, { Quill } from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport { ImageDrop } from 'quill-image-drop-module';\r\nimport ImageResize from 'quill-image-resize-module-react';\r\nimport { Item, Menu, useContextMenu, theme } from 'react-contexify';\r\nimport 'react-contexify/dist/ReactContexify.min.css';\r\n\r\nconst fontSizeArr = ['8px', '9px', '10px', '12px', '14px', '16px', '20px', '24px', '32px', '42px', '54px', '68px', '84px', '98px'];\r\n\r\nconst Size = Quill.import('attributors/style/size');\r\nSize.whitelist = fontSizeArr;\r\nQuill.register(Size, true);\r\n\r\nQuill.register('modules/imageResize', ImageResize);\r\nQuill.register('modules/imageDrop', ImageDrop);\r\n\r\nconst BaseImageFormat = Quill.import('formats/image');\r\nconst ImageFormatAttributesList = [\r\n 'alt',\r\n 'height',\r\n 'width',\r\n 'style',\r\n 'size'\r\n];\r\n\r\nclass ImageFormat extends BaseImageFormat {\r\n static formats(domNode: any) {\r\n return ImageFormatAttributesList.reduce(function (formats, attribute) {\r\n if (domNode.hasAttribute(attribute)) {\r\n (formats as any)[attribute] = domNode.getAttribute(attribute);\r\n }\r\n return formats;\r\n }, {});\r\n }\r\n format(name: any, value: any) {\r\n if (ImageFormatAttributesList.indexOf(name) > -1) {\r\n if (value) {\r\n this.domNode.setAttribute(name, value);\r\n } else {\r\n this.domNode.removeAttribute(name);\r\n }\r\n } else {\r\n super.format(name, value);\r\n }\r\n }\r\n}\r\n\r\nQuill.register(ImageFormat, true);\r\n\r\nconst colors: Array = [\r\n '#000000', '#e60000', '#ff9900', '#ffff00', '#008a00', '#0066cc', '#9933ff', '#ffffff', '#facccc',\r\n '#ffebcc', '#ffffcc', '#cce8cc', '#cce0f5', '#ebd6ff', '#bbbbbb', '#f06666', '#ffc266', '#ffff66',\r\n '#66b966', '#66a3e0', '#c285ff', '#888888', '#a10000', '#b26b00', '#b2b200', '#006100', '#0047b2',\r\n '#6b24b2', '#444444', '#5c0000', '#663d00', '#666600', '#003700', '#002966', '#3d1466'\r\n];\r\n\r\nconst formats = [\r\n 'bold', 'italic', 'underline', 'strike', 'blockquote',\r\n 'list', 'bullet', 'ordered', 'indent',\r\n 'link', 'image',\r\n 'align', 'color', 'background', 'size',\r\n 'clean', 'style', 'height', 'width',\r\n 'header',\r\n];\r\n\r\nexport type Props = {\r\n form: UseFormMethods; \r\n id?: string;\r\n name: string;\r\n placeholder?: string;\r\n required?: boolean;\r\n isDisabled?: boolean;\r\n contextMenuOptions?: ContextMenuOption[];\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nexport type ContextMenuOption = {\r\n onClick: (element: HTMLInputElement | ReactQuill | undefined) => string;\r\n name: string;\r\n}\r\n\r\nconst SummernoteController = ({ form, name, id, placeholder, contextMenuOptions, required, isDisabled, ...props }: Props, ref: any) => {\r\n const { t } = useTranslation();\r\n const [element, setElement] = useState(); \r\n const { show } = useContextMenu({ id: id });\r\n\r\n const modules = {\r\n imageResize: !isDisabled ? {\r\n parchment: Quill.import('parchment'),\r\n displaySize: true,\r\n modules: ['Resize', 'DisplaySize', 'Toolbar'],\r\n } : undefined,\r\n imageDrop: !isDisabled,\r\n toolbar: !isDisabled ? [\r\n [{ header: [false, 1, 2, 3, 4, 5, 6] }],\r\n // [ { size: [ 'small', false, 'large', 'huge'] }],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ list: 'ordered' }, { list: 'bullet' }, 'link'],\r\n [{ color: colors }, { background: [] }],\r\n [{ align: [] }, 'image'],\r\n ['clean']\r\n ] : false,\r\n clipboard: {\r\n matchVisual: false\r\n }\r\n };\r\n\r\n const onRegisterRef = (instance: HTMLInputElement | ReactQuill | null) => {\r\n if (instance) setElement(instance);\r\n }\r\n\r\n const renderContextMenu = () => {\r\n return \r\n {contextMenuOptions?.map((option, index) => {\r\n return option.onClick(element)}>\r\n
\r\n {t(option.name as any)}\r\n
\r\n
;\r\n })}\r\n
;\r\n }\r\n\r\n return (\r\n
\r\n (\r\n <>\r\n { contextMenuOptions && !isDisabled &&
\r\n \r\n {renderContextMenu()}\r\n
\r\n }\r\n { (!contextMenuOptions || isDisabled) &&\r\n \r\n }\r\n \r\n )}\r\n name={name}\r\n control={form.control}\r\n defaultValue={form.getValues(name) || ''}\r\n rules={{ required }}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default memo(React.forwardRef(SummernoteController));\r\n","import Http from '../../common/services/Http';\r\nimport { Paged } from '../common/types/Page';\r\nimport { NotificationSearchCriteria } from './models/NotificationSearchCriteria';\r\nimport { NotificationDto, NotificationListDto } from './models/NotificationDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\n\r\nclass NotificationsService {\r\n\r\n public getList(criteria: NotificationSearchCriteria) {\r\n return Http.get>('notifications', criteria);\r\n }\r\n \r\n public catalog() {\r\n return Http.get('notifications/catalog');\r\n }\r\n\r\n public getListByType(type : string) {\r\n return Http.get('notifications/' + type);\r\n }\r\n\r\n public create(model: NotificationDto) {\r\n return Http.post('notifications', model);\r\n }\r\n\r\n public update(list: NotificationListDto) {\r\n return Http.put('notifications', list);\r\n }\r\n\r\n public remove(model: NotificationDto) {\r\n return Http.put('notifications/deactivate', model);\r\n }\r\n\r\n}\r\n\r\nexport default new NotificationsService();","export enum MSG_TYPE_CONTRACTS {\r\n CONTRACT_INSURANCE_EMAIL = 'CONTRACT_INSURANCE_EMAIL',\r\n CONTRACT_INSURANCE_ALERT = 'CONTRACT_INSURANCE_ALERT',\r\n CONTRACT_USE_ALERT = 'CONTRACT_USE_ALERT',\r\n CONTRACT_USE_EMAIL = 'CONTRACT_USE_EMAIL',\r\n CONTRACT_MAINTENANCE_ALERT = 'CONTRACT_MAINTENANCE_ALERT',\r\n CONTRACT_MAINTENANCE_EMAIL = 'CONTRACT_MAINTENANCE_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_CHARGES {\r\n EXPENSE_NEW_ALERT = 'EXPENSE_NEW_ALERT',\r\n EXPENSE_NEW_EMAIL = 'EXPENSE_NEW_EMAIL',\r\n}\r\n\r\n\r\nexport enum MSG_TYPE_CHARGES_SITUATION {\r\n EXPENSE_TREATED_ALERT = 'EXPENSE_TREATED_ALERT',\r\n EXPENSE_TREATED_EMAIL = 'EXPENSE_TREATED_EMAIL',\r\n EXPENSE_NOT_TREATED_ALERT = 'EXPENSE_NOT_TREATED_ALERT',\r\n EXPENSE_NOT_TREATED_EMAIL = 'EXPENSE_NOT_TREATED_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_CHARGES_STATUS {\r\n EXPENSE_REFUND_APPROVED_ALERT = 'EXPENSE_REFUND_APPROVED_ALERT',\r\n EXPENSE_REFUND_APPROVED_EMAIL = 'EXPENSE_REFUND_APPROVED_EMAIL',\r\n EXPENSE_REFUND_REFUSED_ALERT = 'EXPENSE_REFUND_REFUSED_ALERT',\r\n EXPENSE_REFUND_REFUSED_EMAIL = 'EXPENSE_REFUND_REFUSED_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_VERIFICATIONS { VERIFICATION_NEW_ALERT = 'VERIFICATION_NEW_ALERT', VERIFICATION_NEW_EMAIL = 'VERIFICATION_NEW_EMAIL' }\r\n\r\nexport enum MSG_TYPE_ANNOTATIONS {\r\n ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT = 'ANNOTATION_INTERVENTION_TYPE_INFORMATION_ALERT',\r\n ANNOTATION_INTERVENTION_TYPE_INFORMATION_EMAIL = 'ANNOTATION_INTERVENTION_TYPE_INFORMATION_EMAIL',\r\n ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT = 'ANNOTATION_INTERVENTION_TYPE_INTERVENTION_ALERT',\r\n ANNOTATION_INTERVENTION_TYPE_INTERVENTION_EMAIL = 'ANNOTATION_INTERVENTION_TYPE_INTERVENTION_EMAIL',\r\n ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT = 'ANNOTATION_INTERVENTION_TYPE_URGENT_ALERT',\r\n ANNOTATION_INTERVENTION_TYPE_URGENT_EMAIL = 'ANNOTATION_INTERVENTION_TYPE_URGENT_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_RESERVATIONS {\r\n RESERVATION_NEW_ALERT = 'RESERVATION_NEW_ALERT',\r\n RESERVATION_NEW_EMAIL = 'RESERVATION_NEW_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_MAINTENANCES {\r\n MAINTENANCE_NEW_ALERT = 'MAINTENANCE_NEW_ALERT',\r\n MAINTENANCE_NEW_EMAIL = 'MAINTENANCE_NEW_EMAIL'\r\n}\r\n\r\nexport enum MSG_TYPE_SCHEDULED_MAINTENANCES {\r\n MAINTENANCE_PLANNED_ALERT = 'MAINTENANCE_PLANNED_ALERT',\r\n MAINTENANCE_PLANNED_EMAIL = 'MAINTENANCE_PLANNED_EMAIL'\r\n}\r\n\r\n\r\nexport enum MSG_TYPE_REQUEST_VERIFICATIONS {\r\n REQUEST_VERIFICATION_NEW_ALERT = 'REQUEST_VERIFICATION_NEW_ALERT',\r\n REQUEST_VERIFICATION_NEW_EMAIL = 'REQUEST_VERIFICATION_NEW_EMAIL'\r\n}","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport React, { useEffect, useState } from 'react';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport LanguagesTab from 'common/components/languagesTabs/LanguagesTab';\r\nimport { LanguageDto } from 'api/languages/models/LanguageDto';\r\nimport { NotificationDto, NotificationListDto } from 'api/notifications/models/NotificationDto';\r\nimport LanguagesService from 'api/languages/LanguagesService';\r\nimport { useForm } from 'react-hook-form';\r\nimport ContentManagement from 'common/components/contentManagement/ContentManagement';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputController from 'common/components/input/InputController';\r\nimport SummernoteController, { ContextMenuOption } from 'common/components/summernoteController/SummernoteController';\r\nimport Label from 'common/components/label/Label';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport NotificationsService from 'api/notifications/NotificationsService';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport ReactQuill from 'react-quill';\r\nimport Button from 'common/components/button/Button';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './NotificationsDetails.module.scss'\r\nimport InputResizableController, { ContextMenuAreaOption } from 'common/components/input/InputResizableController';\r\nimport { MSG_TYPE_CONTRACTS, MSG_TYPE_ANNOTATIONS, MSG_TYPE_CHARGES, MSG_TYPE_CHARGES_SITUATION, MSG_TYPE_CHARGES_STATUS, MSG_TYPE_MAINTENANCES, MSG_TYPE_RESERVATIONS, MSG_TYPE_SCHEDULED_MAINTENANCES, MSG_TYPE_VERIFICATIONS } from 'api/notifications/enums/NotificationMessageType';\r\n\r\nfunction isType(itemId: string, enumType: any) {\r\n return Boolean(Object.keys(enumType).find(x => enumType[x] === itemId));\r\n}\r\n\r\ntype Props = {\r\n};\r\n\r\nconst NotificationsDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const form = useForm({ shouldUnregister: false });\r\n const [model, setModel] = useState({ list: [] });\r\n const [selectedLanguageIndex, setSelectedLanguageIndex] = useState(0);\r\n const [languages, setLanguages] = useState([]);\r\n const { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n const isDetails = type === 'details';\r\n const [isEmail, setIsEmail] = useState(true);\r\n const history = useHistory();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasNotificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_NOTIFICATIONS_WRITE']);\r\n const [contextOptions, setContextOptions] = useState([]);\r\n const [contextAreaOptions, setContextAreaOptions] = useState([]);\r\n\r\n const addElement = (element: HTMLInputElement | HTMLTextAreaElement | ReactQuill | undefined, pattern: string) => {\r\n let value = '';\r\n if (!element) return value;\r\n\r\n if (!(element as ReactQuill).getEditorSelection) {\r\n const elem = element as HTMLInputElement;\r\n const start = elem.selectionStart ?? 0;\r\n const end = elem.selectionEnd ?? 0;\r\n elem.value = `${elem.value.substring(0, start)} ${pattern} ${elem.value.substring(end)}`;\r\n value = elem.value;\r\n } else {\r\n const elemQuill = element as ReactQuill;\r\n const elemQuillEditor = elemQuill.getEditor();\r\n const range = elemQuill.getEditorSelection();\r\n const position = range ? range.index : 0;\r\n elemQuillEditor.insertText(position, ` ${pattern} `);\r\n }\r\n return value;\r\n }\r\n\r\n //#region declare @\r\n //*common*\r\n const addLinkQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@url');\r\n const addVehicleRegistrationNumberQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@registrationnumber');\r\n const addVehicleRegistrationNumberArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@registrationnumber');\r\n const addVehicleBrandQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@brand');\r\n const addVehicleBrandArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@brand');\r\n const addVehicleModelQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@model');\r\n const addVehicleModelArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@model');\r\n //*contracts*\r\n const addContractNumberQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@contractnumber');\r\n const addContractNumberArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@contractnumber');\r\n const addContractTypeQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@contrattype');\r\n const addContractTypeArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@contrattype');\r\n const addContractStartDateQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@contractstartdate');\r\n const addContractStartDateArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@contractstartdate');\r\n const addContractEndDateQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@contractenddate');\r\n const addContractEndDateArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@contractenddate');\r\n const addContractContractualKmsQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@contractualkms');\r\n const addContractContractualKmsArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@contractualkms');\r\n //*charges*\r\n const addChargeValueQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@chargevalue');\r\n const addChargeValueArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@chargevalue');\r\n const addChargeTypeQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@chargetype');\r\n const addChargeTypeArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@chargetype');\r\n const addHaveRefundQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@hasrefund');\r\n const addHaveRefundArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@hasrefund');\r\n //*charges situation*\r\n const addChargeSituationQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@chargesituation');\r\n const addChargeSituationArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@chargesituation');\r\n //*charges status*\r\n const addChargeStatusQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@chargestatus');\r\n const addChargeStatusArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@chargestatus');\r\n //*verifications*\r\n const addVerificationDateQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@verificationdate');\r\n const addVerificationDateArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@verificationdate');\r\n const addVerificationHourQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@verificationhour');\r\n const addVerificationHourArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@verificationhour');\r\n const addVerificationResponsableQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@verificationresponsable');\r\n const addVerificationResponsableArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@verificationresponsable');\r\n const addVerificationTypeQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@verificationtype');\r\n const addVerificationTypeArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@verificationtype');\r\n //*annotations*\r\n const addAnnotationInterventionTypeQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@annotationtypeintervention');\r\n const addAnnotationInterventionTypeArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@annotationtypeintervention');\r\n const addAnnotationQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@annotation');\r\n const addAnnotationArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@annotation');\r\n //*reservations*\r\n const addReservationDriverQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@reservationdriver');\r\n const addReservationDriverArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@reservationdriver');\r\n const addReservationStartEndDateQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@reservationstartenddate');\r\n const addReservationStartEndDateArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@reservationstartenddate');\r\n //*maintenance*\r\n const addMaintenancePredictedKmQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@maintenancepredictedkm');\r\n const addMaintenancePredictedKmArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@maintenancepredictedkm');\r\n const addMaintenancePredictedDateQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@maintenancepredicteddate');\r\n const addMaintenancePredictedDateArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@maintenancepredicteddate');\r\n //*scheduled maintenance*\r\n const addScheduledMaintenanceDateHourQuill = (element: HTMLInputElement | ReactQuill | undefined) => addElement(element, '@scheduledmaintenancedatehour');\r\n const addScheduledMaintenanceDateHourArea = (element: HTMLTextAreaElement | undefined) => addElement(element, '@scheduledmaintenancedatehour');\r\n //#endregion\r\n\r\n //#region contextOption\r\n //*common*\r\n const contextOptionAddLink: ContextMenuOption = { onClick: addLinkQuill, name: 'notifications.contextHelper.add_link' };\r\n const contextOptionAddVehicleRegistrationNumber: ContextMenuOption = { onClick: addVehicleRegistrationNumberQuill, name: 'notifications.contextHelper.add_registration_number' };\r\n const contextOptionAddVehicleBrand: ContextMenuOption = { onClick: addVehicleBrandQuill, name: 'notifications.contextHelper.add_vehicle_brand' };\r\n const contextOptionAddVehicleModel: ContextMenuOption = { onClick: addVehicleModelQuill, name: 'notifications.contextHelper.add_vehicle_model' };\r\n //*contracts*\r\n const contextOptionAddContractNumber: ContextMenuOption = { onClick: addContractNumberQuill, name: 'notifications.contextHelper.add_contract_number' };\r\n const contextOptionAddContracType: ContextMenuOption = { onClick: addContractTypeQuill, name: 'notifications.contextHelper.add_contract_type' };\r\n const contextOptionAddContracStartDate: ContextMenuOption = { onClick: addContractStartDateQuill, name: 'notifications.contextHelper.add_contract_end_date' };\r\n const contextOptionAddContracEndDate: ContextMenuOption = { onClick: addContractEndDateQuill, name: 'notifications.contextHelper.add_contract_start_date' };\r\n const contextOptionAddContractContractualKms: ContextMenuOption = { onClick: addContractContractualKmsQuill, name: 'notifications.contextHelper.add_contract_contractual_kms' };\r\n //*charges*\r\n const contextOptionAddChargeValue: ContextMenuOption = { onClick: addChargeValueQuill, name: 'notifications.contextHelper.add_charge_value' };\r\n const contextOptionAddChargeType: ContextMenuOption = { onClick: addChargeTypeQuill, name: 'notifications.contextHelper.add_charge_type' };\r\n const contextOptionAddHaveRefund: ContextMenuOption = { onClick: addHaveRefundQuill, name: 'notifications.contextHelper.add_charge_have_refund' };\r\n //*charges situation*\r\n const contextOptionAddChargeSituation: ContextMenuOption = { onClick: addChargeSituationQuill, name: 'notifications.contextHelper.add_charge_situation' };\r\n //*charges status*\r\n const contextOptionAddChargeStatus: ContextMenuOption = { onClick: addChargeStatusQuill, name: 'notifications.contextHelper.add_charge_status' };\r\n //*verifications*\r\n const contextOptionAddVerificationDate: ContextMenuOption = { onClick: addVerificationDateQuill, name: 'notifications.contextHelper.add_verification_date' };\r\n const contextOptionAddVerificationHour: ContextMenuOption = { onClick: addVerificationHourQuill, name: 'notifications.contextHelper.add_verification_hour' };\r\n const contextOptionAddVerificationResponsable: ContextMenuOption = { onClick: addVerificationResponsableQuill, name: 'notifications.contextHelper.add_verification_responsable' };\r\n const contextOptionAddVerificationType: ContextMenuOption = { onClick: addVerificationTypeQuill, name: 'notifications.contextHelper.add_verification_type' };\r\n //*annotations*\r\n const contextOptionAddAnnotationInterventionType: ContextMenuOption = { onClick: addAnnotationInterventionTypeQuill, name: 'notifications.contextHelper.add_annotation_intervention_type' };\r\n const contextOptionAddAnnotation: ContextMenuOption = { onClick: addAnnotationQuill, name: 'notifications.contextHelper.add_annotation_description' };\r\n //*reservations*\r\n const contextOptionAddReservationDriver: ContextMenuOption = { onClick: addReservationDriverQuill, name: 'notifications.contextHelper.add_reservation_driver' };\r\n const contextOptionAddReservationStartEndDate: ContextMenuOption = { onClick: addReservationStartEndDateQuill, name: 'notifications.contextHelper.add_reservation_start_end_date' };\r\n //*maintenance*\r\n const contextOptionAddMaintenancePredictedKm: ContextMenuOption = { onClick: addMaintenancePredictedKmQuill, name: 'notifications.contextHelper.add_maintenance_predicted_km' };\r\n const contextOptionAddMaintenancePredictedDate: ContextMenuOption = { onClick: addMaintenancePredictedDateQuill, name: 'notifications.contextHelper.add_maintenance_predicted_date' };\r\n //*scheduled maintenance*\r\n const contextOptionAddScheduledMaintenanceDateHour: ContextMenuOption = { onClick: addScheduledMaintenanceDateHourQuill, name: 'notifications.contextHelper.add_scheduled_maintenance_date_hour' };\r\n //#endregion\r\n\r\n //#region contextOptionArea\r\n //*common*\r\n const contextOptionAreaAddVehicleRegistrationNumber: ContextMenuAreaOption = { onClick: addVehicleRegistrationNumberArea, name: 'notifications.contextHelper.add_registration_number' };\r\n const contextOptionAreaAddVehicleBrand: ContextMenuAreaOption = { onClick: addVehicleBrandArea, name: 'notifications.contextHelper.add_vehicle_brand' };\r\n const contextOptionAreaAddVehicleModel: ContextMenuAreaOption = { onClick: addVehicleModelArea, name: 'notifications.contextHelper.add_vehicle_model' };\r\n //*contracts*\r\n const contextOptionAreaAddContractNumber: ContextMenuAreaOption = { onClick: addContractNumberArea, name: 'notifications.contextHelper.add_contract_number' };\r\n const contextOptionAreaAddContracType: ContextMenuAreaOption = { onClick: addContractTypeArea, name: 'notifications.contextHelper.add_contract_type' };\r\n const contextOptionAreaAddContracStartDate: ContextMenuAreaOption = { onClick: addContractStartDateArea, name: 'notifications.contextHelper.add_contract_start_date' };\r\n const contextOptionAreaAddContracEndDate: ContextMenuAreaOption = { onClick: addContractEndDateArea, name: 'notifications.contextHelper.add_contract_end_date' };\r\n const contextOptionAreaAddContractContractualKms: ContextMenuAreaOption = { onClick: addContractContractualKmsArea, name: 'notifications.contextHelper.add_contract_contractual_kms' };\r\n //*charges*\r\n const contextOptionAreaAddChargeValue: ContextMenuAreaOption = { onClick: addChargeValueArea, name: 'notifications.contextHelper.add_charge_value' };\r\n const contextOptionAreaAddChargeType: ContextMenuAreaOption = { onClick: addChargeTypeArea, name: 'notifications.contextHelper.add_charge_type' };\r\n const contextOptionAreaAddHaveRefund: ContextMenuAreaOption = { onClick: addHaveRefundArea, name: 'notifications.contextHelper.add_charge_have_refund' };\r\n //*charges situation*\r\n const contextOptionAreaAddChargeSituation: ContextMenuAreaOption = { onClick: addChargeSituationArea, name: 'notifications.contextHelper.add_charge_situation' };\r\n //*charges status*\r\n const contextOptionAreaAddChargeStatus: ContextMenuAreaOption = { onClick: addChargeStatusArea, name: 'notifications.contextHelper.add_charge_status' };\r\n //*verifications*\r\n const contextOptionAreaAddVerificationDate: ContextMenuAreaOption = { onClick: addVerificationDateArea, name: 'notifications.contextHelper.add_verification_date' };\r\n const contextOptionAreaAddVerificationHour: ContextMenuAreaOption = { onClick: addVerificationHourArea, name: 'notifications.contextHelper.add_verification_hour' };\r\n const contextOptionAreaAddVerificationResponsable: ContextMenuAreaOption = { onClick: addVerificationResponsableArea, name: 'notifications.contextHelper.add_verification_responsable' };\r\n const contextOptionAreaAddVerificationType: ContextMenuAreaOption = { onClick: addVerificationTypeArea, name: 'notifications.contextHelper.add_verification_type' };\r\n //*annotations*\r\n const contextOptionAreaAddAnnotationInterventionType: ContextMenuAreaOption = { onClick: addAnnotationInterventionTypeArea, name: 'notifications.contextHelper.add_annotation_intervention_type' };\r\n const contextOptionAreaAddAnnotation: ContextMenuAreaOption = { onClick: addAnnotationArea, name: 'notifications.contextHelper.add_annotation_description' };\r\n //*reservations*\r\n const contextOptionAreaAddReservationDriver: ContextMenuAreaOption = { onClick: addReservationDriverArea, name: 'notifications.contextHelper.add_reservation_driver' };\r\n const contextOptionAreaAddReservationStartEndDate: ContextMenuAreaOption = { onClick: addReservationStartEndDateArea, name: 'notifications.contextHelper.add_reservation_start_end_date' };\r\n //*maintenance*\r\n const contextOptionAreaAddMaintenancePredictedKm: ContextMenuAreaOption = { onClick: addMaintenancePredictedKmArea, name: 'notifications.contextHelper.add_maintenance_predicted_km' };\r\n const contextOptionAreaAddMaintenancePredictedDate: ContextMenuAreaOption = { onClick: addMaintenancePredictedDateArea, name: 'notifications.contextHelper.add_maintenance_predicted_date' };\r\n //*scheduled maintenance*\r\n const contextOptionAreaAddScheduledMaintenanceDateHour: ContextMenuAreaOption = { onClick: addScheduledMaintenanceDateHourArea, name: 'notifications.contextHelper.add_scheduled_maintenance_date_hour' };\r\n //#endregion\r\n\r\n const contextOptionsDefault: ContextMenuOption[] = [contextOptionAddLink,\r\n contextOptionAddVehicleRegistrationNumber,\r\n contextOptionAddVehicleBrand,\r\n contextOptionAddVehicleModel\r\n ];\r\n\r\n const generateContextOptions = () => {\r\n if (isType(itemId, MSG_TYPE_CONTRACTS)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddContractNumber,\r\n contextOptionAddContracType,\r\n contextOptionAddContracStartDate,\r\n contextOptionAddContracEndDate,\r\n contextOptionAddContractContractualKms))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_CHARGES)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddChargeValue,\r\n contextOptionAddHaveRefund,\r\n contextOptionAddChargeType))\r\n }\r\n if (isType(itemId, MSG_TYPE_CHARGES_SITUATION)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddChargeValue,\r\n contextOptionAddChargeType,\r\n contextOptionAddChargeSituation))\r\n }\r\n if (isType(itemId, MSG_TYPE_CHARGES_STATUS)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddChargeValue,\r\n contextOptionAddChargeType,\r\n contextOptionAddChargeStatus))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_VERIFICATIONS)) {\r\n setContextOptions(contextOptionsDefault.concat(\r\n contextOptionAddVerificationDate,\r\n contextOptionAddVerificationHour,\r\n contextOptionAddVerificationResponsable,\r\n contextOptionAddVerificationType))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_ANNOTATIONS)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddAnnotationInterventionType, contextOptionAddAnnotation))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_RESERVATIONS)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddReservationDriver, contextOptionAddReservationStartEndDate))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_MAINTENANCES)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddMaintenancePredictedKm))\r\n }\r\n if (isType(itemId, MSG_TYPE_SCHEDULED_MAINTENANCES)) {\r\n setContextOptions(contextOptionsDefault.concat(contextOptionAddMaintenancePredictedKm,\r\n contextOptionAddMaintenancePredictedDate))\r\n }\r\n }\r\n\r\n const contextAreaOptionsDefault: ContextMenuAreaOption[] = [\r\n contextOptionAreaAddVehicleRegistrationNumber,\r\n contextOptionAreaAddVehicleBrand,\r\n contextOptionAreaAddVehicleModel];\r\n\r\n const generateContextAreaOptions = () => {\r\n if (isType(itemId, MSG_TYPE_CONTRACTS)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddContractNumber,\r\n contextOptionAreaAddContracType,\r\n contextOptionAreaAddContracStartDate,\r\n contextOptionAreaAddContracEndDate,\r\n contextOptionAreaAddContractContractualKms))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_CHARGES)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddChargeValue,\r\n contextOptionAreaAddHaveRefund,\r\n contextOptionAreaAddChargeType))\r\n }\r\n if (isType(itemId, MSG_TYPE_CHARGES_SITUATION)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddChargeValue,\r\n contextOptionAreaAddChargeType,\r\n contextOptionAreaAddChargeSituation))\r\n }\r\n if (isType(itemId, MSG_TYPE_CHARGES_STATUS)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddChargeValue,\r\n contextOptionAreaAddChargeType,\r\n contextOptionAreaAddChargeStatus))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_VERIFICATIONS)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddVerificationDate,\r\n contextOptionAreaAddVerificationHour,\r\n contextOptionAreaAddVerificationResponsable,\r\n contextOptionAreaAddVerificationType))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_ANNOTATIONS)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddAnnotationInterventionType,\r\n contextOptionAreaAddAnnotation))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_RESERVATIONS)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddReservationDriver,\r\n contextOptionAreaAddReservationStartEndDate))\r\n }\r\n\r\n if (isType(itemId, MSG_TYPE_MAINTENANCES)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(contextOptionAreaAddMaintenancePredictedKm))\r\n }\r\n if (isType(itemId, MSG_TYPE_SCHEDULED_MAINTENANCES)) {\r\n setContextAreaOptions(contextAreaOptionsDefault.concat(\r\n contextOptionAreaAddMaintenancePredictedDate,\r\n contextOptionAreaAddScheduledMaintenanceDateHour))\r\n }\r\n }\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n let list: NotificationDto[] = [];\r\n const listLanguages = await LanguagesService.getAll();\r\n listLanguages[0].languageTabVisited = true;\r\n setLanguages(listLanguages);\r\n\r\n if (itemId) {\r\n list = await NotificationsService.getListByType(itemId);\r\n }\r\n\r\n model.list = listLanguages.map(lang => {\r\n\r\n const item = list?.find(x => x.languageId === lang.id);\r\n if (item) {\r\n setIsEmail(item.channel === 'EMAIL');\r\n return item;\r\n }\r\n return {\r\n id: undefined,\r\n type: itemId,\r\n name: '',\r\n title: '',\r\n languageId: lang.id,\r\n };\r\n });\r\n\r\n form.reset(model)\r\n\r\n\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get notifications list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [isDetails, type]);\r\n\r\n\r\n const getType = () => {\r\n const language = languages[0];\r\n if (form.getValues('list')) {\r\n const sourceItem = form.getValues('list').find(x => x.languageId === language.id);\r\n return t(`notifications.list.${sourceItem?.type}` as any);\r\n }\r\n return '';\r\n }\r\n\r\n const onGoBack = () => {\r\n if (model) {\r\n form.reset(model);\r\n }\r\n history.goBack();\r\n }\r\n\r\n const onSubmit = async (model: NotificationListDto) => {\r\n try {\r\n\r\n Loading.show();\r\n await NotificationsService.update(model);\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n onGoBack();\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't save notification`, error);\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const notSubmitted = async (errorsInForm?: any) => {\r\n for (let i = 0; i < languages.length; i++) {\r\n const language = languages[i];\r\n language.invalid = Boolean((errorsInForm?.list || [])[i]) || (!language.languageTabVisited);\r\n }\r\n };\r\n\r\n const copyLanguage = (destinationIndex: number, langToCopyId: string) => {\r\n const sourceItem = form.getValues('list').find(x => x.languageId === langToCopyId);\r\n if (sourceItem) {\r\n form.setValue(`list.${destinationIndex}.subject` as 'list.0.subject', sourceItem.subject);\r\n form.setValue(`list.${destinationIndex}.message` as 'list.0.message', sourceItem.message);\r\n }\r\n }\r\n\r\n const onLanguageChange = (lang: LanguageDto, i: number) => {\r\n setLanguages([\r\n ...languages.map(l => {\r\n if (l.id === lang.id) {\r\n return {\r\n ...l,\r\n languageTabVisited: true\r\n }\r\n }\r\n return l;\r\n }),\r\n ]);\r\n\r\n setSelectedLanguageIndex(i);\r\n }\r\n\r\n useEffect(() => {\r\n generateContextAreaOptions();\r\n generateContextOptions();\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n

{getType()}

\r\n\r\n \r\n
\r\n {languages.map((lang, index) => {\r\n const keyName = `list.${index}`;\r\n const itemErrors = (form.formState.errors.list || [])[index];\r\n\r\n return
\r\n {!isDetails &&
x.id != lang.id).map(x => ({ label: x.name, value: x.id }))}\r\n onCopy={lang => copyLanguage(selectedLanguageIndex, lang)}\r\n isInnerContainer={true}\r\n />\r\n
}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* {isEmail && \r\n \r\n {\r\n return ();\r\n }}\r\n control={form.control}\r\n name={`${keyName}.message`}\r\n defaultValue={form.getValues(`${keyName}.message`) || null} />\r\n \r\n \r\n } */}\r\n\r\n {isEmail && \r\n \r\n \r\n\r\n \r\n \r\n }\r\n\r\n {!isEmail &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n })\r\n }\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nexport default NotificationsDetails;","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { NotificationDto } from 'api/notifications/models/NotificationDto';\r\nimport { NotificationSearchCriteria } from 'api/notifications/models/NotificationSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport NotificationsService from 'api/notifications/NotificationsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './NotificationsList.module.scss';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst NotificationsList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [notificationsPage, setNotificationsPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'type',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const showRemoveItemDialog = async (item: NotificationDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasNotificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_NOTIFICATIONS_WRITE']);\r\n\r\n const renderTableTypeCell = (row: NotificationDto) => {\r\n return
{t(`notifications.list.${row.type}` as any)}
\r\n };\r\n\r\n\r\n const renderTableActionCell = (row: NotificationDto) => {\r\n return \r\n \r\n {t('common.details')}\r\n \r\n {hasNotificationsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasNotificationsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'type',\r\n name: t('notifications.list.type'),\r\n // onSearch: onTableFilter,\r\n searchField: 'n.type',\r\n renderCell: renderTableTypeCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await NotificationsService.getList(criteria);\r\n setNotificationsPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get notifications list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await NotificationsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete notifications`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n {/*
\r\n \r\n
\r\n
\r\n {hasNotificationsWritePolicy && history.push(`/settings/notifications/new`)}\r\n >}\r\n
*/}\r\n
\r\n history.push(`/settings/notifications/details/${row.type ?? ''}`)}\r\n onHref={row => `/settings/notifications/details/${row.type ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'n.type', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default NotificationsList;\r\n","import React from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport NotificationsDetails from './components/notificationsDetails/NotificationsDetails';\r\nimport NotificationsList from './components/notificationsList/NotificationsList';\r\n\r\nconst NotificationsTab = () => { \r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n\r\n return (type === 'list' ? : );\r\n}\r\n\r\nexport default NotificationsTab;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './DamageTypesDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport React from 'react';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { DiagnosticTypesDto } from 'api/diagnosticTypes/models/DiagnosticTypesDto';\r\nimport DiagnosticTypesService from 'api/diagnosticTypes/DiagnosticTypesService';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst DamageTypesDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n const [damageType, setDamageType] = useState(null);\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { register, handleSubmit, setValue, reset, errors } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasDiagnosticTypesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_DIAGNOSTIC_TYPES_WRITE']);\r\n\r\n const onSubmit = async (formData: DiagnosticTypesDto) => {\r\n try {\r\n if (!hasDiagnosticTypesWritePolicy) { return; }\r\n\r\n Loading.show();\r\n\r\n if (damageType != null) {\r\n damageType.name = formData.name;\r\n await DiagnosticTypesService.update(damageType);\r\n } else {\r\n itemId = await DiagnosticTypesService.create(formData);\r\n getData();\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n history.push(`/settings/damageTypes/details/${itemId}`);\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update damage type`,\r\n error\r\n );\r\n }\r\n };\r\n\r\n const getData = async () => {\r\n if (itemId) {\r\n try {\r\n Loading.show();\r\n\r\n const result = await DiagnosticTypesService.getById(itemId);\r\n setDamageType(result);\r\n reset(result);\r\n\r\n Loading.hide();\r\n }\r\n catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get damage type`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: DiagnosticTypesDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await DiagnosticTypesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/damageTypes/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n const onGoBack = () => {\r\n if(damageType){\r\n reset(damageType);\r\n }\r\n history.goBack();\r\n }\r\n\r\n const isDanger = form.watch('isDanger');\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/damageTypes/list`)} >\r\n \r\n \r\n {t('settings.diagnosis_types')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DamageTypesDetails;\r\n","import { useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './DamageTypesList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { DiagnosticTypesDto } from 'api/diagnosticTypes/models/DiagnosticTypesDto';\r\nimport { DiagnosticTypesSearchCriteria } from 'api/diagnosticTypes/models/DiagnosticTypesSearchCriteria';\r\nimport DiagnosticTypesService from 'api/diagnosticTypes/DiagnosticTypesService';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst DamageTypesList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [damageTypesPage, setDamageTypesPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const history = useHistory();\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasDiagnosticTypesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_DIAGNOSTIC_TYPES_WRITE']);\r\n\r\n const showRemoveItemDialog = (item: DiagnosticTypesDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const renderBooleanCell = (row: DiagnosticTypesDto) => {\r\n return <>-;\r\n };\r\n\r\n const renderTableActionCell = (row: DiagnosticTypesDto) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasDiagnosticTypesWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasDiagnosticTypesWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('diagnosis_types.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'dt.name'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n },\r\n ];\r\n return cols;\r\n }, []);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await DiagnosticTypesService.getList(criteria);\r\n setDamageTypesPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get vehicle brands list`,\r\n error\r\n );\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await DiagnosticTypesService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete damage type`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasDiagnosticTypesWritePolicy && history.push(`/settings/damageTypes/new`)} />}\r\n
\r\n
\r\n history.push(`/settings/damageTypes/details/${row.id ?? ''}`)}\r\n onHref={row => `/settings/damageTypes/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'dt.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n\r\n
\r\n );\r\n};\r\n\r\nexport default DamageTypesList;\r\n","import { useParams } from 'react-router-dom';\r\nimport DamageTypesDetails from './components/damageTypesDetails/DamageTypesDetails';\r\nimport DamageTypesList from './components/damageTypesList/DamageTypesList';\r\nimport styles from './DamageTypesTab.module.scss';\r\n\r\nconst DamageTypesTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n \r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default DamageTypesTab;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { LocalContactDto, LocalDto } from 'api/locals/models/LocalDto';\r\nimport Loading from 'common/services/Loading';\r\nimport LocalsService from 'api/locals/LocalsService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './LocalsDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { useFieldArray, useForm, useWatch } from 'react-hook-form';\r\nimport { DEFAULT_EMAIL_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport React, { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport InputController from 'common/components/input/InputController';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst LocalsDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [local, setLocal] = useState();\r\n\r\n const history = useHistory();\r\n // eslint-disable-next-line\r\n let { type, itemId } = useParams<{ type: string, itemId: string }>();\r\n\r\n const [itemToRemove, setItemToRemove] = useState();\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const localContacts = useFieldArray({ control: form.control, name: 'localContacts', keyName: 'formId' as any });\r\n const { handleSubmit, errors, reset, control, getValues, setValue } = form;\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasLocalsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_WRITE']);\r\n const isDetails = type === 'details';\r\n const [localContactToRemoveIndex, setLocalContactToRemoveIndex] = useState(null);\r\n const [showRemoveLocalContact, setShowRemoveLocalContact] = useState(false);\r\n const [localContactsIdsToRemove, setLocalContactsIdsToRemove] = useState([]);\r\n const [loadedFormValues, setLoadedFormValues] = useState(false);\r\n\r\n const logo = useWatch({ name: 'logo', control });\r\n\r\n const getLocal = async () => {\r\n if (!itemId) {\r\n setLoadedFormValues(true);\r\n return;\r\n }\r\n Loading.show();\r\n try {\r\n const result = await LocalsService.getById(itemId);\r\n reset(result);\r\n setLocal(result); \r\n setLoadedFormValues(true);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog local types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: LocalDto) => {\r\n setItemToRemove(item);\r\n setDialogDeleteItemIsOpen(true);\r\n };\r\n\r\n const removeItem = async () => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!!itemToRemove) {\r\n try {\r\n Loading.show();\r\n await LocalsService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n history.push(`/settings/locals/list`);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const onAddMedia = (files: CustomFile[]) => {\r\n setValue('logo', files[0]);\r\n }\r\n\r\n const onRemoveMedia = () => {\r\n setValue('logo', null);\r\n setValue('removeAttachment', true);\r\n }\r\n\r\n useEffect(() => {\r\n getLocal();\r\n }, []);\r\n\r\n const onSubmit = async (formData: LocalDto) => {\r\n try {\r\n\r\n if (!formData.name) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n\r\n if (local != null) {\r\n formData.id = local.id;\r\n await LocalsService.update(formData, formData.logo ? [formData.logo] : []);\r\n } else {\r\n itemId = await LocalsService.create(formData, formData.logo ? [formData.logo] : []);\r\n getLocal();\r\n }\r\n\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n history.goBack();\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.name_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update local`, error);\r\n }\r\n };\r\n\r\n const onGoBack = () => {\r\n if (local) {\r\n reset(local);\r\n }\r\n history.goBack(); \r\n }\r\n\r\n const addLocalContact = () => {\r\n localContacts.append({\r\n id: null,\r\n description: '',\r\n name: undefined,\r\n email: undefined,\r\n phoneNumber: undefined\r\n });\r\n }\r\n\r\n const setRemoveLocalContact = (index: number) => {\r\n setShowRemoveLocalContact(true);\r\n setLocalContactToRemoveIndex(index);\r\n }\r\n\r\n const removeLocalContact = () => {\r\n if (localContactToRemoveIndex === null) return;\r\n \r\n if (localContacts.fields[localContactToRemoveIndex]?.id) {\r\n setLocalContactsIdsToRemove([...localContactsIdsToRemove, localContacts.fields[localContactToRemoveIndex].id!]);\r\n }\r\n\r\n localContacts.remove(localContactToRemoveIndex);\r\n\r\n setShowRemoveLocalContact(false);\r\n }\r\n\r\n const renderLocalContact = () => {\r\n return localContacts && localContacts.fields.map((x, i) => {\r\n return (\r\n \r\n \r\n {i == 0 && }\r\n \r\n {errors.localContacts && errors.localContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 && }\r\n \r\n {!!errors.localContacts && errors.localContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 &&}\r\n \r\n {!!errors.localContacts && errors.localContacts.length > 0 && }\r\n \r\n \r\n \r\n \r\n {i == 0 && }\r\n \r\n {!!errors.localContacts && errors.localContacts.length > 0 && }\r\n \r\n \r\n {!isDetails && \r\n setRemoveLocalContact(i)} />\r\n }\r\n )\r\n })\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
history.push(`/settings/locals/list`)} >\r\n \r\n \r\n {t('settings.locals')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {(!isDetails) && }\r\n
\r\n\r\n {localContacts.fields.length === 0 &&
\r\n {t('locals.without_local_contacts')}\r\n
}\r\n\r\n {loadedFormValues && renderLocalContact()}\r\n \r\n
\r\n
\r\n
\r\n\r\n removeLocalContact()}\r\n onNo={() => { setShowRemoveLocalContact(false); setLocalContactToRemoveIndex(null) }}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LocalsDetails;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport LocalsService from 'api/locals/LocalsService';\r\nimport { LocalDto } from 'api/locals/models/LocalDto';\r\nimport { LocalSearchCriteria } from 'api/locals/models/LocalSearchCriteria';\r\nimport UsersService from 'api/users/UsersService';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport NoImage from 'assets/svg/semfoto.svg';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport styles from './LocalsList.module.scss';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst LocalsList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const history = useHistory();\r\n\r\n const [localsPage, setLocalsPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'name',\r\n orderBy: 'asc'\r\n });\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasLocalsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_WRITE']);\r\n\r\n const showRemoveItemDialog = (item: LocalDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const renderTableActionCell = (\r\n row: LocalDto,\r\n ) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasLocalsWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasLocalsWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n\r\n const renderImageDescCell = (row: LocalDto) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {row.name}\r\n
\r\n
\r\n )\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('vehicle_segments.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'l.name',\r\n renderCell: renderImageDescCell\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n }\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await LocalsService.getList(criteria);\r\n setLocalsPage(page);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get vehicle segments list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await LocalsService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete local`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasLocalsWritePolicy && history.push(`/settings/locals/new`)} />}\r\n
\r\n
\r\n history.push(`/settings/locals/details/${row.id ?? ''}`)}\r\n onHref={row => `/settings/locals/details/${row.id ?? ''}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'l.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LocalsList;\r\n","import LocalsDetails from './components/localsDetails/LocalsDetails';\r\nimport LocalsList from './components/localsList/LocalsList';\r\nimport { useParams } from 'react-router-dom';\r\nimport styles from './LocalsTab.module.scss';\r\n\r\nconst LocalsTab = () => {\r\n const { type } = useParams<{ type: string, itemId: string }>();\r\n return
\r\n {\r\n (type === 'list' ? : )\r\n }\r\n
;\r\n}\r\n\r\nexport default LocalsTab;\r\n","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport React, { useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport VehicleSegmentsTab from './components/vehicleSegmentsTab/VehicleSegmentsTab';\r\nimport VehicleModelTab from './components/vehicleModelTab/VehicleModelTab';\r\nimport VehicleBrandsTab from './components/vehicleBrandsTab/VehicleBrandsTab';\r\nimport SuppliersTab from './components/suppliersTab/SuppliersTab';\r\nimport GenericTypesTab from './components/genericTypesTab/GenericTypesTab';\r\nimport CommunicationsTab from './components/communicationsTab/CommunicationsTab';\r\nimport NotificationsTab from './components/notificationsTab/NotificationsTab';\r\nimport DamageTypesTab from './components/damageTypesTab/DamageTypesTab';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport LocalsTab from './components/localsTab/LocalsTab';\r\n\r\nconst SettingsScreen = () => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { tabId } = useParams<{ tabId: string }>();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVehicleSegmentsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_SEGMENTS_READ']);\r\n const hasVehicleBrandsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_BRANDS_READ']);\r\n const hasVehicleModelsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MODELS_READ']);\r\n const hasGenericTypesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GENERIC_TYPES_READ']);\r\n const hasSuppliersReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_SUPPLIERS_READ']);\r\n const hasLocalsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_LOCALS_READ']);\r\n const hasDiagnosticTypesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_DIAGNOSTIC_TYPES_READ']);\r\n const hasCommunicationsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_COMMUNICATIONS_READ']);\r\n const hasNotificationsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_NOTIFICATIONS_READ']);\r\n\r\n const changeTab = (_tabId: string) => {\r\n history.push(`/settings/${_tabId}/list`);\r\n }\r\n\r\n const defaultTab =\r\n hasVehicleSegmentsReadPolicy ? 'segments' :\r\n hasVehicleBrandsReadPolicy ? 'brands' :\r\n hasVehicleModelsReadPolicy ? 'models' :\r\n hasGenericTypesReadPolicy ? 'genericTypes' :\r\n hasSuppliersReadPolicy ? 'suppliers' :\r\n hasCommunicationsReadPolicy ? 'communications' :\r\n hasLocalsReadPolicy ? 'locals' :\r\n hasNotificationsReadPolicy ? 'notifications' :\r\n 'damageTypes';\r\n if (!tabId) changeTab(defaultTab);\r\n\r\n const tabs: TabItem[] = useMemo(() => {\r\n const items: TabItem[] = [];\r\n if (hasVehicleSegmentsReadPolicy) {\r\n items.push({\r\n id: 'segments',\r\n title: t('settings.vehicle_segments'),\r\n content: \r\n });\r\n }\r\n if (hasVehicleBrandsReadPolicy) {\r\n items.push({\r\n id: 'brands',\r\n title: t('settings.vehicle_brands'),\r\n content: \r\n });\r\n }\r\n if (hasVehicleModelsReadPolicy) {\r\n items.push({\r\n id: 'models',\r\n title: t('settings.vehicle_models'),\r\n content: \r\n });\r\n }\r\n if (hasSuppliersReadPolicy) {\r\n items.push({\r\n id: 'suppliers',\r\n title: t('settings.suppliers'),\r\n content: \r\n });\r\n }\r\n if (hasLocalsReadPolicy) {\r\n items.push({\r\n id: 'locals',\r\n title: t('settings.locals'),\r\n content: \r\n });\r\n }\r\n if (hasGenericTypesReadPolicy) {\r\n items.push({\r\n id: 'genericTypes',\r\n title: t('settings.generic_types'),\r\n content: \r\n });\r\n }\r\n if (hasDiagnosticTypesReadPolicy) {\r\n items.push({\r\n id: 'damageTypes',\r\n title: t('settings.diagnosis_types'),\r\n content: \r\n });\r\n }\r\n\r\n if (hasCommunicationsReadPolicy) {\r\n items.push({\r\n id: 'communications',\r\n title: t('settings.communications'),\r\n content: \r\n });\r\n }\r\n\r\n if (hasNotificationsReadPolicy) {\r\n items.push({\r\n id: 'notifications',\r\n title: t('settings.notifications'),\r\n content: \r\n });\r\n }\r\n\r\n\r\n return items;\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SettingsScreen;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { Reducers } from 'store/types';\r\nimport { updateRefreshToken } from 'store/authentication/action';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { UserDto } from 'api/users/models/UserDto';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport UsersService from 'api/users/UsersService';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport { CheckAvailabilityDto } from 'api/common/models/CheckAvailabilityDto';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport CheckBoxController from 'common/components/checkBox/CheckBoxController';\r\nimport MediaSelector from 'common/components/mediaSelector/MediaSelector';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './DriverUserTab.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport CountriesService from '../../../../api/countries/CountriesService';\r\n\r\n\r\ntype Props = {\r\n};\r\n\r\nconst DriverUserTab: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [countries, setCountries] = useState([]);\r\n const { id, driverId, type } = useParams<{ id: string, driverId: string, type: Types }>();\r\n const [allRoles, setAllRoles] = useState([]);\r\n const [user, setUser] = useState();\r\n const form = useForm({ shouldUnregister: false, defaultValues: { ...user } });\r\n const { register, handleSubmit, errors, watch } = form;\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasUsersWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_USERS_WRITE']);\r\n const hasRolesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ROLES_WRITE']);\r\n const hasRolesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ROLES_READ']);\r\n const [isDetails, setIsDetails] = useState(type === 'details');\r\n const [mediaFile, setMediaFile] = useState(null);\r\n const [removeMedia, setRemoveMedia] = useState(false);\r\n const [username, setUsername] = useState('');\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const getData = async () => {\r\n Loading.show();\r\n\r\n try {\r\n const allDBRoles = await RolesService.getAllForCompany();\r\n let userObj: UserDto = { id: '', realName: '', email: '', roles: [], temporaryRoles: [] };\r\n if (driverId) {\r\n userObj = await UsersService.getById(driverId);\r\n }\r\n if (id && !driverId) {\r\n userObj = await UsersService.getById(id);\r\n }\r\n setAllRoles([...allDBRoles]);\r\n\r\n userObj.temporaryRoles = allDBRoles.map(role => {\r\n const __role = { ...role };\r\n __role.checked = (userObj.roles?.includes(__role.name) ?? false);\r\n return __role;\r\n });\r\n\r\n userObj.temporaryRoles.forEach(role => {\r\n if (role.readOnly || role.system) {\r\n role.name = t(('common.roles.' + role.name) as any);\r\n }\r\n });\r\n\r\n const coutriesData = await CountriesService.catalog();\r\n setCountries(coutriesData.map(x=> {\r\n return { value: x.name, label: (t('common.countries.' + x.name as any)) }\r\n }));\r\n \r\n setUser(userObj);\r\n setUsername(userObj.realName);\r\n setIsDetails(type === 'details');\r\n\r\n form.reset(userObj);\r\n \r\n Loading.hide();\r\n }\r\n catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog users types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onCancel = () => {\r\n // if (driverId) {\r\n // history.push('/drivers');\r\n // return;\r\n // }\r\n history.goBack();\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [type]);\r\n\r\n const onAddAvatar = (files: CustomFile[]) => {\r\n if (files.length > 0) {\r\n setMediaFile(files[0]);\r\n }\r\n }\r\n\r\n const onRemoveAvatar = () => {\r\n setRemoveMedia(true);\r\n if (user) {\r\n setUser({\r\n ...user,\r\n media: null,\r\n });\r\n }\r\n }\r\n\r\n const onSubmit = async (formData: UserDto) => {\r\n try {\r\n\r\n if (!formData.temporaryRoles || formData.temporaryRoles?.find(e => e.checked === true) == null) {\r\n addToast(t('common.messages.complete_required_fields'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n const emailData: CheckAvailabilityDto = { table: 'asp_net_users', column: 'normalized_email', value: formData.email.toLocaleUpperCase(), companyId: true, itemEdit: user?.id };\r\n const checkAvailabilityEmail = await UsersService.checkAvailability(emailData);\r\n if (!checkAvailabilityEmail) {\r\n addToast(t('common.messages.email_already_exists'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n emailData.companyId = false;\r\n const checkAvailabilityEmailAllEntities = await UsersService.checkAvailability(emailData);\r\n if (!checkAvailabilityEmailAllEntities) {\r\n addToast(t('common.messages.email_already_exists_all_entities'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n Loading.show();\r\n if (user) {\r\n user.realName = formData.realName;\r\n user.email = formData.email;\r\n user.phoneNumber = formData.phoneNumber;\r\n user.address = formData.address;\r\n user.zipcode = formData.zipcode;\r\n user.country = formData.country;\r\n user.roles = [];\r\n user.removeMedia = removeMedia;\r\n\r\n if (formData.temporaryRoles) {\r\n formData.temporaryRoles.forEach((r, i) => {\r\n if (r.checked) {\r\n user.roles?.push(allRoles[i].name);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (user && user.id != '') {\r\n await UsersService.update(user, mediaFile);\r\n } else if (user) {\r\n await UsersService.create(user, mediaFile);\r\n }\r\n\r\n if (user?.id === loggedUser?.id) {\r\n dispatch(updateRefreshToken());\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n onCancel();\r\n } catch (error) {\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n }\r\n else {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n }\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update user`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onError = async () => {\r\n addToast(t('common.errors.required_fields_empty'), { appearance: 'warning' });\r\n }\r\n\r\n const showRemoveItemDialog = async (item: UserDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await UsersService.remove(itemToRemove);\r\n onCancelRemove();\r\n onCancel();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete user`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {username}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n setUsername(e.target.value as any)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n {(hasRolesReadPolicy || hasRolesWritePolicy) && \r\n \r\n
\r\n {user?.temporaryRoles.map((role, i) => {\r\n return ();\r\n })}\r\n\r\n
\r\n ('temporaryRoles').filter(x => x.checked).length === 0 ? { type: 'dateRange', message: t('common.errors.error_no_role_selected') } : undefined} />\r\n
}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default DriverUserTab;","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport Loading from 'common/services/Loading';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport Logger from 'common/services/Logger';\r\nimport Button from 'common/components/button/Button';\r\nimport styles from './RolesDetails.module.scss';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport Input from 'common/components/input/Input';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { useForm } from 'react-hook-form';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport GreyArrow from 'assets/svg/Arrow-grey.svg';\r\nimport React, { useEffect, useState } from 'react';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\n\r\nconst RolesDetails = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const { id: roleId, type } = useParams<{ id: string, type: string }>();\r\n const [role, setRole] = useState();\r\n const [isDetails, setIsDetails] = useState(type === 'details');\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const history = useHistory();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasRolesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ROLES_WRITE']);\r\n\r\n const form = useForm({ defaultValues: { ...role } });\r\n const { register, handleSubmit, errors } = form;\r\n\r\n const goToList = () => {\r\n history.push(`/security/roles`);\r\n };\r\n\r\n const onCancel = () => {\r\n if (isDetails) {\r\n goToList();\r\n } else if (!roleId) {\r\n goToList();\r\n }\r\n else {\r\n setIsDetails(true);\r\n }\r\n };\r\n\r\n const getData = async () => {\r\n if (!roleId) { return; }\r\n Loading.show();\r\n try {\r\n const role = await RolesService.getById(roleId)\r\n if (role.readOnly || role.system) {\r\n role.name = t(('common.roles.' + role.name) as any);\r\n }\r\n setRole(role);\r\n Loading.hide();\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't get catalog roles types`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [isDetails]);\r\n\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n try {\r\n await RolesService.remove(itemToRemove);\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n onCancelRemove();\r\n goToList();\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete role`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const showRemoveItemDialog = async (item: RoleDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onSubmit = async (formData: RoleDto) => {\r\n try {\r\n if (!hasRolesWritePolicy) { return; }\r\n\r\n Loading.show();\r\n\r\n if (role != null) {\r\n role.name = formData.name;\r\n await RolesService.update(role);\r\n } else {\r\n await RolesService.create(formData);\r\n }\r\n\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n goToList();\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update role`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
goToList()} >\r\n \r\n \r\n {t('roles.title')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RolesDetails;\r\n","import { useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, {\r\n ListingTableColumn,\r\n} from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport { RoleSearchCriteria } from 'api/roles/models/RoleSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './RolesList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { useHistory } from 'react-router';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\nconst RolesList = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [rolesPage, setRolesPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderBy: 'asc',\r\n orderColumn: 'anrc.name'\r\n });\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasRolesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ROLES_WRITE']);\r\n const history = useHistory();\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const showRemoveItemDialog = async (item: RoleDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onSelectRole = (item: RoleDto | null, details: boolean) => {\r\n if (!item) {\r\n history.push(`/security/roles/new`);\r\n return;\r\n }\r\n history.push(`/security/roles/${details ? 'details' : 'edit'}/${item.id}`);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await RolesService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete role`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const renderTableActionCell = (row: RoleDto) => {\r\n return (\r\n \r\n onSelectRole(row, true)}>\r\n {t('common.details')}\r\n \r\n {!row.readOnly && hasRolesWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] =\r\n useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('roles.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'anrc.name'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n },\r\n ];\r\n return cols;\r\n }, []);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await RolesService.getList(criteria);\r\n\r\n page.items.forEach(role => {\r\n if (role.readOnly || role.system) {\r\n role.name = t(('common.roles.' + role.name) as any);\r\n }\r\n });\r\n\r\n setRolesPage(page);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get roles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {hasRolesWritePolicy && onSelectRole(null, false)} /> }\r\n
\r\n
\r\n onSelectRole(row, true)}\r\n allowHover={true}\r\n initialSearch={{ colField: 'anrc.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RolesList;\r\n"," import Http from '../../common/services/Http';\r\n import { RuleDto } from './models/RuleDto';\r\n\r\nclass RuleService {\r\n\r\n public getAllForCompany() {\r\n return Http.get(`rules`);\r\n }\r\n\r\n public update(model: RuleDto[]) {\r\n return Http.put('rules', { rules : model });\r\n }\r\n\r\n}\r\n\r\nexport default new RuleService();","export interface RuleDto { \r\n id: string; \r\n name: string;\r\n expression: string;\r\n concatType?: RuleConcatType;\r\n}\r\n\r\nexport enum RuleConcatType {\r\n OR = 'OR',\r\n AND = 'AND',\r\n}\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport React, { useEffect, useState } from 'react';\r\nimport styles from './RulesDetails.module.scss'\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport UsersService from 'api/users/UsersService';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport RulesService from 'api/rules/RulesService';\r\nimport { UsersSelectItemDto } from 'api/users/models/UserDto';\r\nimport CheckBox from 'common/components/checkBox/CheckBox';\r\nimport { RuleConcatType, RuleDto } from 'api/rules/models/RuleDto';\r\nimport { RoleDto } from 'api/roles/models/RoleDto';\r\nimport Button from 'common/components/button/Button';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce/lib';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst RulesDetails: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [usersList, setUsersList] = useState([]);\r\n const [rulesList, setRulesList] = useState([]);\r\n const [rolesList, setRolesList] = useState([]);\r\n const [rule, setRule] = useState();\r\n const [filterRule, setFilterRule] = useState('');\r\n const [filterUser, setFilterUser] = useState('');\r\n const [filterRole, setFilterRole] = useState('');\r\n const [usersListFiltered, setUsersListFiltered] = useState([]);\r\n const [rulesListFiltered, setRulesListFiltered] = useState([]);\r\n const [rolesListFiltered, setRolesListFiltered] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasRulesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_RULES_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const users = await UsersService.getAllForCompany();\r\n setUsersList(users);\r\n const roles = await RolesService.getAllForCompany();\r\n setRolesList(roles);\r\n const rules = await RulesService.getAllForCompany();\r\n setRulesList(rules);\r\n if (rules.length >= 1) {\r\n onRuleSelected(rules[0], users, roles);\r\n }\r\n Loading.hide();\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get roles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n const roleName = (role: RoleDto): string => {\r\n if (role.system === true || role.readOnly === true) {\r\n return t(('common.roles.' + role.name) as any)\r\n }\r\n else {\r\n return role.name;\r\n }\r\n\r\n }\r\n\r\n const onRuleSelected = async (rule: RuleDto, users: UsersSelectItemDto[], roles: RoleDto[]) => {\r\n setRule({ ...rule });\r\n parseRuleFromExpression(rule, users, roles);\r\n }\r\n\r\n const parseRuleFromExpression = async (rule: RuleDto, users: UsersSelectItemDto[], roles: RoleDto[]) => {\r\n const andOrRegex = /\\((.*)\\)(AND|OR)\\((.*)\\)/gi;\r\n const andOrMatch = andOrRegex.exec(rule?.expression);\r\n if (andOrMatch) {\r\n // AND / OR\r\n const andOr = andOrMatch[2];\r\n if (andOr.toUpperCase() === RuleConcatType.AND) {\r\n rule.concatType = RuleConcatType.AND;\r\n } else if (andOr.toUpperCase() === RuleConcatType.OR) {\r\n rule.concatType = RuleConcatType.OR;\r\n }\r\n }\r\n\r\n setRule({ ...rule });\r\n\r\n // Users\r\n users.forEach(x => x.checked = false);\r\n\r\n const usersExpression = andOrMatch ? andOrMatch[1] : rule.expression?.replace(/\\(/g, '').replace(/\\)/g, '');\r\n const usersRegex = /I:([^\\s]+)/gi;\r\n const usersMatchArray = [];\r\n let usersMatch = usersRegex.exec(usersExpression);\r\n while (usersMatch != null) {\r\n usersMatchArray.push(usersMatch[1]);\r\n usersMatch = usersRegex.exec(usersExpression);\r\n }\r\n\r\n if (usersMatchArray && usersMatchArray.length > 0) {\r\n if (usersMatchArray.length === 1 && usersMatchArray[0] === '*') {\r\n if (filterUser === '') {\r\n users.forEach((e: UsersSelectItemDto) => {\r\n e.checked = true;\r\n });\r\n } else {\r\n users.filter(c => usersListFiltered?.find(e => e.id === c.id) != null).forEach((e: UsersSelectItemDto) => {\r\n e.checked = true;\r\n });\r\n }\r\n } else {\r\n usersMatchArray.forEach(userName => {\r\n const user = users.find(u => u.userName === userName);\r\n if (user) {\r\n user.checked = true;\r\n }\r\n });\r\n }\r\n }\r\n setUsersList([...users]);\r\n\r\n // Roles\r\n roles.forEach(x => x.checked = false);\r\n\r\n const rolesExpression = andOrMatch ? andOrMatch[3] : rule.expression?.replace(/\\(/g, '').replace(/\\)/g, '');\r\n const rolesRegex = /R:([^\\s]+)/gi;\r\n\r\n const rolesMatchArray = [];\r\n let rolesMatch = rolesRegex.exec(rolesExpression);\r\n while (rolesMatch != null) {\r\n rolesMatchArray.push(rolesMatch[1]);\r\n rolesMatch = rolesRegex.exec(rolesExpression);\r\n }\r\n\r\n if (rolesMatchArray && rolesMatchArray.length > 0) {\r\n if (rolesMatchArray.length === 1 && rolesMatchArray[0] === '*') {\r\n\r\n if (filterRole === '') {\r\n rolesList.forEach((r: RoleDto) => {\r\n r.checked = true;\r\n });\r\n } else {\r\n rolesList.filter(c => rolesListFiltered?.find(e => e.id === c.id) != null).forEach((r: RoleDto) => {\r\n r.checked = true;\r\n });\r\n }\r\n\r\n } else {\r\n rolesMatchArray.forEach(userRole => {\r\n const role = roles.find(r => r.id === userRole);\r\n if (role) {\r\n role.checked = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n setRolesList([...roles]);\r\n }\r\n\r\n\r\n\r\n const onSave = async () => {\r\n try {\r\n Loading.show();\r\n\r\n if (rulesList != null) {\r\n await RulesService.update(rulesList);\r\n }\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n } catch (error) {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n Logger.error(\r\n LOGGER_LOG_TYPE.REQUEST,\r\n `Couldn't create or update rule`,\r\n error\r\n );\r\n Loading.hide();\r\n }\r\n };\r\n\r\n\r\n\r\n const createExpression = (rule: RuleDto) => {\r\n // Users\r\n const users = usersList.filter((e: UsersSelectItemDto) => {\r\n return e.checked === true;\r\n });\r\n const usersExpression = users.map((u: UsersSelectItemDto) => {\r\n return 'I:' + u.userName;\r\n });\r\n const usersString = isAllUsersChecked(false) ? '(I:*)' : usersExpression && usersExpression.length > 0 ? '(' + usersExpression.join(' OR ') + ')' : '';\r\n\r\n // Roles\r\n const roles = rolesList.filter((r: RoleDto) => {\r\n return r.checked === true;\r\n });\r\n const rolesExpression = roles ? roles.map((r: RoleDto) => {\r\n return 'R:' + r.id;\r\n }) : [];\r\n\r\n const rolesString = isAllRolesChecked(false) ? '(R:*)' : rolesExpression && rolesExpression.length > 0 ? '(' + rolesExpression.join(' OR ') + ')' : '';\r\n const andOr = rule.concatType && rule.concatType === RuleConcatType.OR ? RuleConcatType.OR : RuleConcatType.AND;\r\n\r\n // Result\r\n if (usersString && rolesString) {\r\n rule.expression = usersString + andOr + rolesString;\r\n } else if (usersString && !rolesString) {\r\n rule.expression = usersString;\r\n } else if (!usersString && rolesString) {\r\n rule.expression = rolesString;\r\n } else {\r\n rule.expression = '';\r\n }\r\n\r\n\r\n setRulesList([\r\n ...rulesList.map(r => {\r\n if (r.id === rule.id) {\r\n r.expression = rule.expression;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n }\r\n\r\n\r\n const debouncedRule = useDebouncedCallback((value: string) => {\r\n setFilterRule(value);\r\n const rules = rulesList.filter(item => {\r\n return t(('rules.policies.' + item.name) as any).removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1;\r\n });\r\n setRulesListFiltered(rules);\r\n }, 500);\r\n\r\n\r\n const debouncedUser = useDebouncedCallback((value: string) => {\r\n setFilterUser(value);\r\n const users = usersList.filter(item => {\r\n return item.realName.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n || item.userName.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n });\r\n setUsersListFiltered(users);\r\n }, 500);\r\n\r\n\r\n const debouncedRole = useDebouncedCallback((value: string) => {\r\n setFilterRole(value);\r\n const roles = rolesList.filter(item => {\r\n return item.name.removeAccents().toLowerCase().indexOf(value.removeAccents().toLowerCase()) !== -1\r\n });\r\n setRolesListFiltered(roles);\r\n }, 500);\r\n\r\n\r\n const setAnd = () => {\r\n if (rule) {\r\n rule.concatType = RuleConcatType.AND;\r\n setRule(rule);\r\n createExpression(rule);\r\n setRule({ ...rule });\r\n }\r\n }\r\n\r\n const setOr = () => {\r\n if (rule) {\r\n rule.concatType = RuleConcatType.OR;\r\n setRule(rule);\r\n createExpression(rule);\r\n setRule({ ...rule });\r\n }\r\n }\r\n\r\n const isAllUsersChecked = (checkFiltered: boolean) => {\r\n if (checkFiltered) {\r\n return filterUser != '' && usersListFiltered.length > 0 && usersListFiltered?.every(_ => _.checked);\r\n }\r\n return usersList?.length > 0 && usersList?.every(_ => _.checked);\r\n }\r\n\r\n const onAllUsersChecked = (checked: boolean) => {\r\n selectOrUnSelectUsers(checked, filterUser != '');\r\n if (rule) {\r\n createExpression(rule);\r\n }\r\n }\r\n\r\n const selectOrUnSelectUsers = async (checked: boolean, filter: boolean) => {\r\n if (!filter) {\r\n usersList.forEach((e: UsersSelectItemDto) => {\r\n e.checked = checked;\r\n });\r\n\r\n } else {\r\n usersList.filter(c => usersListFiltered?.find(e => e.id === c.id) != null).forEach((e: UsersSelectItemDto) => {\r\n e.checked = checked;\r\n });\r\n }\r\n setUsersList([...usersList]);\r\n }\r\n\r\n\r\n\r\n const isAllRolesChecked = (checkFiltered: boolean) => {\r\n if (checkFiltered) {\r\n return filterRole != '' && rolesListFiltered.length > 0 && rolesListFiltered?.every(_ => _.checked);\r\n }\r\n return rolesList?.length > 0 && rolesList?.every(_ => _.checked);\r\n }\r\n\r\n const onAllRolesChecked = (checked: boolean) => {\r\n selectOrUnSelectRoles(checked, filterRole != '');\r\n if (rule) {\r\n createExpression(rule);\r\n }\r\n }\r\n\r\n const selectOrUnSelectRoles = (checked: boolean, filter: boolean) => {\r\n if (!filter) {\r\n rolesList.forEach((r: RoleDto) => {\r\n r.checked = checked;\r\n });\r\n } else {\r\n rolesList.filter(c => rolesListFiltered?.find(e => e.id === c.id) != null).forEach((r: RoleDto) => {\r\n r.checked = checked;\r\n });\r\n }\r\n setRolesList([...rolesList]);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {t('common.messages.atention')}: {t('common.messages.logout_login')}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterRule != '' ? rulesListFiltered : rulesList).map((row, rowIndex) => (\r\n onRuleSelected(row, usersList, rolesList)}>\r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('rules.title')}\r\n
\r\n
\r\n
{t(('rules.policies.' + row.name) as any)}
\r\n
\r\n
\r\n
\r\n { /*################## Users ################## */}\r\n
\r\n {/*

{t('users.title')}

*/}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterUser != '' ? usersListFiltered : usersList).map((row, rowIndex) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('users.title')}\r\n { onAllUsersChecked(e.target.checked) }} disabled={!hasRulesWritePolicy} />\r\n
\r\n
\r\n
\r\n {row.realName}\r\n ({row.userName})\r\n
\r\n
\r\n {\r\n setUsersList([\r\n ...usersList.map(r => {\r\n if (r.id === row.id) {\r\n r.checked = e.target.checked;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n if (rule) {\r\n createExpression(rule);\r\n }\r\n }}\r\n checked={row.checked || false}\r\n key={row.id}\r\n disabled={!hasRulesWritePolicy}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n { /*################## Roles ################## */}\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(filterRole != '' ? rolesListFiltered : rolesList).map((row, rowIndex) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {t('roles.title')}\r\n { onAllRolesChecked(e.target.checked) }} disabled={!hasRulesWritePolicy} />\r\n
\r\n
\r\n
\r\n {roleName(row)}\r\n
\r\n
\r\n {\r\n setRolesList([\r\n ...rolesList.map(r => {\r\n if (r.id === row.id) {\r\n r.checked = e.target.checked;\r\n }\r\n return r;\r\n }),\r\n ]);\r\n if (rule) {\r\n createExpression(rule);\r\n }\r\n }}\r\n checked={row.checked || false}\r\n key={row.id}\r\n disabled={!hasRulesWritePolicy}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n {hasRulesWritePolicy &&
\r\n
\r\n );\r\n};\r\n\r\nexport default RulesDetails;\r\n","import RulesDetails from './components/rulesDetails/RulesDetails';\r\n\r\nconst RulesTab = () => { \r\n\r\n return ( );\r\n}\r\n\r\nexport default RulesTab;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './UsersFiltersScreen.module.scss';\r\nimport Button from '../../../../../../common/components/button/Button';\r\nimport FormItem from '../../../../../../common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../../../../common/types/SelectValueLabel';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport RolesService from 'api/roles/RolesService';\r\nimport Label from 'common/components/label/Label';\r\nimport Select from 'common/components/select/Select';\r\nimport { removeAccents } from 'Config';\r\n\r\nexport interface UserFilters {\r\n roles?: SelectValueLabel[];\r\n page?:number;\r\n}\r\n\r\ntype Props = {\r\n filters: UserFilters;\r\n onChange: (filters: UserFilters) => void;\r\n onFilter: (filters: UserFilters) => void;\r\n}\r\n\r\nconst UsersFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n\r\n const [rolesOptions, setRoles] = useState([]);\r\n\r\n const getData = async () => {\r\n const rolesOptions = await RolesService.getAllForCompany();\r\n const roles = rolesOptions.map(r => ({ value: r.id, label: (r.readOnly === true || r.system === true) ? t(('common.roles.' + r.name) as any) : r.name }));\r\n setRoles(roles);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset();\r\n form.setValue('roles', []);\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (filters: UserFilters) => {\r\n onFilter(filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n return (\r\n {\r\n onChange(data?.map(x => ({ value: x.value })));\r\n }}\r\n value={value ? rolesOptions.filter(x => value.find((y: SelectValueLabel) => y.value === x.value)) : []}\r\n filterOption={(candidate: any, input: any) => input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"roles\"\r\n defaultValue={form.getValues('roles')} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(UsersFiltersScreen);","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { UserDto } from 'api/users/models/UserDto';\r\nimport { UserSearchCriteria } from 'api/users/models/UserSearchCriteria';\r\nimport Loading from 'common/services/Loading';\r\nimport UsersService from 'api/users/UsersService';\r\nimport Logger from 'common/services/Logger';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport styles from './UsersList.module.scss';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport UsersFiltersScreen, { UserFilters } from 'screens/security/components/usersTab/components/usersFilters/UsersFiltersScreen';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst UsersList: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [usersPage, setUsersPage] = useState>();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderBy: 'asc',\r\n orderColumn: 'u.real_name'\r\n });\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [pageLoad, setPageLoad] = useState(false);\r\n const history = useHistory();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasUsersWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_USERS_WRITE']);\r\n\r\n const showRemoveItemDialog = async (item: UserDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await UsersService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete user`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const renderTableActionCell = (row: UserDto) => {\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { hasUsersWritePolicy && \r\n {t('common.edit')}\r\n }\r\n { hasUsersWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n name: t('users.list.name'),\r\n renderCell: row => {row.realName},\r\n onSearch: onTableFilter,\r\n searchField: 'u.real_name'\r\n },\r\n {\r\n field: 'email',\r\n name: t('users.list.email'),\r\n onSearch: onTableFilter,\r\n searchField: 'u.email',\r\n cellStyle: { wordBreak: 'break-all' }\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n },\r\n ];\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const page = await UsersService.getList(criteria);\r\n setUsersPage(page);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get users list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n\r\n const saveFiltersOnCache = (f: UserFilters) => {\r\n setFilters(f);\r\n localStorage.setItem('USERSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('USERSFILTER');\r\n if (cachedFilters != null) {\r\n const filters: UserFilters = JSON.parse(cachedFilters);\r\n setCriteria({ ...criteria, roles: filters.roles?.map(r => r.value) });\r\n setFilters(filters);\r\n updateTotalFilters(filters);\r\n }\r\n setPageLoad(true)\r\n }\r\n\r\n const onChangeFilters = (filters: UserFilters) => {\r\n updateTotalFilters(filters);\r\n setCriteria({ ...criteria, roles: filters.roles?.map(r => r.value), page: 1 });\r\n saveFiltersOnCache(filters)\r\n }\r\n\r\n const updateTotalFilters = (filters: UserFilters) => {\r\n let total = 0;\r\n if (filters.roles && filters.roles.length > 0) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, page: 1, allIn: value });\r\n }, 500);\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n\r\n if (typeUrl === 'new' ){\r\n canAddUsers();\r\n }\r\n history.push(`/security${typeUrl ? `/users/${typeUrl}${id ? `/${id}` : ''}` : ''}`);\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters);\r\n\r\n if (event.ctrlKey) {\r\n window.open('/security/users/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const canAddUsers = async () => {\r\n try {\r\n Loading.show();\r\n await UsersService.candAddUsers();\r\n Loading.hide();\r\n } catch (error) {\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n history.push(`/account/details/subscription`);\r\n }\r\n } \r\n }\r\n\r\n useEffect(() => {\r\n\r\n loadFilters();\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n \r\n if (pageLoad) { getData() }\r\n }, [criteria]);\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(filters) }}\r\n onChange={filters => updateTotalFilters(filters)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasUsersWritePolicy && navigateTo('new')} />}\r\n
\r\n
\r\n onRowClick(event, row.id)}\r\n onHref={row => `/security/users/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'u.real_name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page })}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default UsersList;\r\n","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport { useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport DriverUserTab from 'screens/driver/components/driverUserTab/DriverUserTab';\r\nimport { Reducers } from 'store/types';\r\nimport RolesDetails from './components/rolesTab/components/rolesDetails/RolesDetails';\r\nimport RolesList from './components/rolesTab/components/rolesList/RolesList';\r\nimport RulesTab from './components/rulesTab/RulesTab';\r\nimport UsersList from './components/usersTab/components/usersList/UsersList';\r\n\r\nconst SecurityScreen = () => {\r\n const { t } = useTranslation();\r\n const { tabId, type, id } = useParams<{ tabId: string, type: string, id: string }>();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasUsersReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_USERS_READ']);\r\n const hasRolesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ROLES_READ']);\r\n const hasRulesReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_RULES_READ']);\r\n\r\n const defaultTab = (hasUsersReadPolicy ? 'users' : (hasRolesReadPolicy ? 'roles' : 'rules'));\r\n const [activeTabId, setActiveTabId] = useState(defaultTab);\r\n\r\n const tabs: TabItem[] = useMemo(() => {\r\n const items: TabItem[] = [];\r\n if (hasUsersReadPolicy) {\r\n items.push({\r\n id: 'users',\r\n title: t('users.title'),\r\n content: tabId === 'users' && type ? : \r\n });\r\n }\r\n if (hasRolesReadPolicy) {\r\n items.push({\r\n id: 'roles',\r\n title: t('roles.title'),\r\n content: tabId === 'roles' && type ? : \r\n });\r\n }\r\n if (hasRulesReadPolicy) {\r\n items.push({\r\n id: 'rules',\r\n title: t('rules.title'),\r\n content: \r\n });\r\n }\r\n return items;\r\n }, [tabId, type, id]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n { !type && setActiveTabId(tId) }}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SecurityScreen;\r\n","import React, { memo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './CompanyFiltersScreen.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useForm } from 'react-hook-form';\r\nimport Input from 'common/components/input/Input';\r\n\r\nexport interface CompanyFilters {\r\n name?: string;\r\n email?: string;\r\n taxNumber?: string; \r\n}\r\n\r\ntype Props = {\r\n filters: CompanyFilters;\r\n onChange: (filters: CompanyFilters) => void;\r\n onFilter: (filters: CompanyFilters) => void;\r\n}\r\n\r\nconst CompanyFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n \r\n const [name, setName] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [taxNumber, setTaxNumber] = useState('');\r\n \r\n const clearFilters = () => {\r\n form.reset();\r\n form.setValue('name', undefined);\r\n form.setValue('email', undefined);\r\n form.setValue('taxNumber', undefined);\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (filters: CompanyFilters) => {\r\n onFilter(filters);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setValue('name', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('companies.name')}\r\n autoComplete='off' \r\n defaultValue={form.watch('name')}/>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setValue('email', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('companies.email')}\r\n autoComplete='off' \r\n defaultValue={form.watch('email')}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n form.setValue('taxNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('companies.tax_number')}\r\n autoComplete='off' \r\n defaultValue={form.watch('taxNumber')}/>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(CompanyFiltersScreen);","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { CompanyDto } from 'api/companies/models/CompanyDto';\r\nimport { CompanySearchCriteria } from 'api/companies/models/CompanySearchCriteria';\r\nimport UsersService from 'api/users/UsersService';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport Box from 'common/components/box/Box';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport Logger from 'common/services/Logger';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './CompaniesScreen.module.scss';\r\nimport CompanyFiltersScreen, { CompanyFilters } from './components/CompanyFiltersScreen';\r\n\r\ntype Props = {\r\n};\r\n\r\nconst CompaniesScreen: React.FC = ({ }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderBy: 'asc',\r\n orderColumn: 'c.name'\r\n });\r\n const [companiesPage, setCompaniesPage] = useState>();\r\n\r\n const history = useHistory();\r\n\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCompaniesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_COMPANIES_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n const page = await CompaniesService.getList(criteria);\r\n setCompaniesPage(page);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get companies list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const renderTableActionCell = (row: CompanyDto) => {\r\n return \r\n \r\n {t('common.details')}\r\n \r\n {hasCompaniesWritePolicy && \r\n {t('common.edit')}\r\n }\r\n {hasCompaniesWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n field: 'name',\r\n name: t('companies.list.name'),\r\n onSearch: onTableFilter,\r\n searchField: 'c.name'\r\n },\r\n {\r\n field: 'email',\r\n name: t('companies.list.email'),\r\n onSearch: onTableFilter,\r\n searchField: 'c.email'\r\n },\r\n {\r\n field: 'taxNumber',\r\n name: t('companies.list.tax_number'),\r\n onSearch: onTableFilter,\r\n searchField: 'c.tax_number'\r\n },\r\n // {\r\n // field: 'addressLine',\r\n // name: t('companies.list.address'),\r\n // onSearch: onTableFilter,\r\n // searchField: 'c.address_line'\r\n // },\r\n // {\r\n // field: 'zipCode',\r\n // name: t('companies.list.zip_code'),\r\n // onSearch: onTableFilter,\r\n // searchField: 'c.zip_code'\r\n // },\r\n {\r\n field: 'city',\r\n name: t('companies.list.city'),\r\n onSearch: onTableFilter,\r\n searchField: 'c.city'\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' }\r\n },\r\n ];\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/companies/${type}/${id}`);\r\n } else {\r\n history.push(`/companies/${type}`);\r\n }\r\n }\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n\r\n const showRemoveItemDialog = async (item: CompanyDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n if (event.ctrlKey) {\r\n window.open(history.location.pathname + '/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await CompaniesService.remove(itemToRemove);\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n\r\n setCriteria({ ...criteria, page: 1 })\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete companies`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n const onChangeFilters = (filters: CompanyFilters) => {\r\n updateTotalFilters(filters);\r\n setFilters(filters);\r\n criteria.name = filters.name;\r\n criteria.email = filters.email;\r\n criteria.taxNumber = filters.taxNumber;\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (filters: CompanyFilters) => {\r\n let total = 0;\r\n if (filters.name != null || filters.email != null || filters.taxNumber != null) {\r\n total++;\r\n }\r\n \r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(filters) }}\r\n onChange={filters => updateTotalFilters(filters)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasCompaniesWritePolicy && navigateTo('new')} />}\r\n
\r\n\r\n \r\n onRowClick(event, row.id)}\r\n // onHref={row => `companies/edit/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'c.name', isOrderAsc: true }}\r\n />\r\n setCriteria({ ...criteria, page: page })}\r\n />\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CompaniesScreen;\r\n","import Http from '../../common/services/Http';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { ImportDataViewModel } from './models/ImportDataViewModel';\r\nimport { DownloadImportModelViewModel } from './models/DownloadImportModelViewModel';\r\n\r\nclass ImportDataService {\r\n public import(model: ImportDataViewModel, attachment: CustomFile) {\r\n return Http.postWithFile('importData', model, [attachment]);\r\n }\r\n\r\n public download(model: DownloadImportModelViewModel) { \r\n return Http.getWithConfig(`importdata/download-template`, model, { responseType: 'blob' });\r\n }\r\n\r\n}\r\n\r\nexport default new ImportDataService();","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\n\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\n\r\nimport Box from 'common/components/box/Box';\r\nimport Label from 'common/components/label/Label';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport Logger from 'common/services/Logger';\r\nimport Loading from 'common/services/Loading';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { CompanySearchCriteria } from 'api/companies/models/CompanySearchCriteria';\r\nimport { SelectValueLabelDto } from 'api/common/models/SelectValueLabelDto';\r\nimport { ImportDataViewModel } from 'api/import-data/models/ImportDataViewModel';\r\nimport ImportDataService from 'api/import-data/ImportDataService';\r\nimport styles from './ImportDataScreen.module.scss';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport moment from 'moment';\r\n\r\nconst ImportDataScreen: React.FC = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [criteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderBy: 'asc',\r\n orderColumn: 'c.name'\r\n });\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasUserImportDataWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_IMPORT_DATA_WRITE']);\r\n const hasCompanyWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_COMPANIES_WRITE']);\r\n\r\n\r\n\r\n const [attachment, setAttachment] = useState();\r\n const [companies, setCompanies] = useState();\r\n const [type, setType] = useState(null);\r\n const types = [\r\n { value: 'VEHICLES', label: t('import_data.types.VEHICLES') },\r\n { value: 'CONTRACTS', label: t('import_data.types.CONTRACTS') }\r\n ]\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit, setValue, register, errors } = form;\r\n\r\n const getCompanies = async () => {\r\n try {\r\n\r\n if (hasCompanyWritePolicy) {\r\n const companies = await CompaniesService.catalog(criteria);\r\n setCompanies(companies);\r\n }\r\n else {\r\n const current = await CompaniesService.getCurrent();\r\n const company: SelectValueLabelDto = { value: current.id ?? '', label: current.name };\r\n setCompanies([company]);\r\n setValue('companyId', company.value);\r\n }\r\n\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get companies list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setAttachment(files[0]);\r\n }\r\n\r\n const download = async () => {\r\n try {\r\n if (type) {\r\n Loading.show();\r\n const template = await ImportDataService.download({ type: type ?? '' });\r\n\r\n const title = t(`import_data.types.${type}` as any);\r\n saveAs(template, `${title}_${moment(new Date()).format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);\r\n Loading.hide();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't download template`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n\r\n const submitForm = (data: any) => {\r\n if (attachment) {\r\n Loading.show();\r\n ImportDataService.import({ type: data.type, companyId: data.companyId }, attachment)\r\n .then((result: any) => {\r\n Loading.hide();\r\n if (result?.message == 'Ok with errors') {\r\n addToast(t('import_data.saved_with_errors'), { appearance: 'warning' });\r\n }\r\n else {\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n }\r\n })\r\n .catch(error => {\r\n Loading.hide();\r\n if (error?.response?.status === 422) {\r\n addToast(t('common.errors.empty_file'), { appearance: 'warning' });\r\n }\r\n else if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n }\r\n else {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't import data`, error);\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getCompanies();\r\n }, [criteria]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
submitForm(data))}>\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('type', data ? data.value : null);\r\n setType(data ? data.value : null);\r\n }}\r\n />\r\n {/* */}\r\n \r\n \r\n {hasCompanyWritePolicy && \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('companyId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n }\r\n {type != null && \r\n \r\n \r\n {t('common.add_new_file')}}\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n />\r\n \r\n }\r\n \r\n\r\n
\r\n \r\n { download(); }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ImportDataScreen;\r\n","import Http from '../../common/services/Http';\r\nimport { VehicleMonthlyCostsDto } from './models/VehicleMonthlyCostsDto';\r\nimport { VehicleMonthlyCostsSearchCriteria } from './models/VehicleMonthlyCostsSearchCriteria';\r\n\r\nclass VehicleMonthlyCosts {\r\n\r\n public getMonthlyCostCounters(criteria: VehicleMonthlyCostsSearchCriteria) {\r\n return Http.get('vehicles/monthly-cost-counters', criteria);\r\n }\r\n \r\n public calculateMonthlyCosts(companyId?: string) {\r\n return Http.put('vehicles/calculate-monthly-costs', { companyId: companyId });\r\n }\r\n}\r\n\r\nexport default new VehicleMonthlyCosts();","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport VehicleMonthlyCostsService from 'api/vehicleMonthlyCosts/VehicleMonthlyCostsService';\r\nimport Loading from 'common/services/Loading';\r\nimport { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { Reducers } from 'store/types';\r\n\r\nconst CalculateMonthlyCostsScreen: React.FC = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const { companyId } = useParams<{ companyId: string }>();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n\r\n const getData = async () => {\r\n if(UsersService.isPlatformAdmin(userProfile?.roles)){\r\n try {\r\n Loading.show();\r\n await VehicleMonthlyCostsService.calculateMonthlyCosts(companyId);\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n Loading.hide();\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n return null;\r\n};\r\n\r\nexport default CalculateMonthlyCostsScreen;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { ReactComponent as TrashIcon } from 'assets/svg/trash_no_color.svg';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\nimport Label from 'common/components/label/Label';\r\nimport { CompanyDto } from 'api/companies/models/CompanyDto';\r\nimport { PackTypesEnum } from 'api/packs/enums/PackTypesEnum';\r\nimport { PlanItem } from '../CompanyScreen';\r\nimport styles from './PlanFormItem.module.scss'\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport Select from 'common/components/select/Select';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { DATE_FORMAT_DEFAUT } from 'Config';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport DateTimePickerControllerNew from 'common/components/dateTimePicker/DateTimePickerControllerNew';\r\n\r\ntype Props = {\r\n form: UseFormMethods;\r\n isDetails: boolean\r\n onRemoveClick: () => void;\r\n index: number;\r\n plansList: PlanItem[];\r\n setRender: () => void;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst PlanFormItem: React.FC = ({\r\n form,\r\n isDetails,\r\n onRemoveClick,\r\n index,\r\n plansList,\r\n setRender,\r\n ...props\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n const errors = (form.errors?.packs || [])[index] || null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n form.setValue(`packs[${index}].packId`, e ? e.id : null);\r\n form.setValue(`packs[${index}].type`, e ? e.value : null);\r\n (e && e.value == PackTypesEnum.FREE) ? form.setValue(`packs[${index}].limit`, 10) : null;\r\n setRender()\r\n }}\r\n isDisabled={isDetails}\r\n value={plansList.find(x => x.value === value) ? { id: plansList.find(x => x.value === value)?.id, label: plansList.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n rules={{ required: true }}\r\n control={form.control}\r\n name={`packs[${index}].type`}\r\n defaultValue={form.getValues(`packs[${index}].type`)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n form.setValue(`packs[${index}].limit`, value);\r\n }}\r\n disabled={isDetails || form.getValues(`packs[${index}].type`) == PackTypesEnum.FREE} />\r\n );\r\n }}\r\n rules={{ required: true }}\r\n control={form.control}\r\n name={`packs[${index}].limit`}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {Boolean(form.getValues(`packs[${index}].date_start`)) && }\r\n\r\n
\r\n \r\n \r\n \r\n \r\n } />}\r\n autoComplete='off'\r\n disabled={isDetails}\r\n name={`packs[${index}].date_start`}\r\n rules={{ required: true }} />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {Boolean(form.getValues(`packs[${index}].expire`)) && }\r\n
\r\n \r\n \r\n \r\n \r\n } />}\r\n autoComplete='off'\r\n disabled={isDetails}\r\n name={`packs[${index}].expire`}\r\n rules={{ required: true }} />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {!isDetails && index > 0 && \r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default PlanFormItem;\r\n","import { CompanyDto } from 'api/companies/models/CompanyDto';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { DEFAULT_EMAIL_RULES_WITH_REQUIRED, DEFAULT_INPUT_RULES, DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport Input from 'common/components/input/Input';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport styles from './CompanyScreen.module.scss';\r\nimport { useFieldArray, useForm } from 'react-hook-form';\r\nimport Box from 'common/components/box/Box';\r\nimport Button from 'common/components/button/Button';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport Separator from 'common/components/separator/Separator';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport CheckBoxController from 'common/components/checkBox/CheckBoxController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport PlansScreen from 'screens/account/components/PlansScreen';\r\nimport CountriesService from 'api/countries/CountriesService';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { PackCompanyDto } from 'api/packs/models/PackDto';\r\nimport PlanFormItem from './components/PlanFormItem';\r\nimport LanguagesService from 'api/languages/LanguagesService';\r\nimport Utils from 'common/services/Utils';\r\n\r\nexport type CloseType = 'edit' | 'details';\r\n\r\n\r\nexport interface PlanItem {\r\n label: string;\r\n value: string;\r\n id: string;\r\n}\r\n\r\nconst CompanyScreen = () => {\r\n const { id, type } = useParams<{ id: string, type: string }>();\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const [item, setItem] = useState({ id: '', name: '', trackingProvider: TrackingProvider.NONE, useValueWithVat: true, packs: [] });\r\n const form = useForm({ shouldUnregister: false, defaultValues: id == undefined ? { id: '', name: '', trackingProvider: TrackingProvider.NONE, useValueWithVat: true, packs: [{}] } : undefined });\r\n const { register, handleSubmit, errors, watch, clearErrors } = form;\r\n const [medias, setMedias] = useState([]);\r\n const isDetails = type === 'details';\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [countries, setCountries] = useState([]);\r\n const [languages, setLanguages] = useState([]);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCompaniesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_COMPANIES_WRITE']);\r\n const [tabId, setTabId] = useState('account')\r\n\r\n const [plansList, setPlansList] = useState([])\r\n const [reRender, setReRender] = useState(0);\r\n const [hasLoaded, setHasLoaded] = useState(false);\r\n const packs = useFieldArray({ control: form.control, name: 'packs', keyName: 'formId' as any });\r\n\r\n const trackingProvidersList = useMemo(() =>\r\n Object.keys(TrackingProvider).map(key => {\r\n const e = (TrackingProvider as any)[key];\r\n return ({ label: t('common.tracking_providers.' + e as any), value: e });\r\n })\r\n , []);\r\n\r\n const getData = async () => {\r\n try {\r\n const isCreate = type === 'new'\r\n\r\n const [allPacksInfo, coutriesData, langs] = await Promise.all([\r\n CompaniesService.getPacksInfo(),\r\n CountriesService.catalog(),\r\n isCreate ? LanguagesService.GetAllForSelectItem() : null,\r\n ]);\r\n\r\n setPlansList(allPacksInfo.map(x => {\r\n return { id: x.id, value: x.type, label: (t('plans.plans_types.' + x.type as any)) }\r\n }));\r\n\r\n\r\n setCountries(coutriesData.map(x => {\r\n return { value: x.name, label: (t('common.countries.' + x.name as any)) }\r\n }));\r\n setLanguages(langs)\r\n\r\n\r\n if (id) {\r\n Loading.show();\r\n\r\n const result = await CompaniesService.getById(id);\r\n\r\n result.packs?.forEach((item: PackCompanyDto) => {\r\n item.date_start = new Date(item.date_start)\r\n item.expire = new Date(item.expire)\r\n })\r\n setItem(result);\r\n form.reset(result);\r\n Loading.hide();\r\n }\r\n\r\n setHasLoaded(true)\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't get company information `, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [id, type]);\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(`/companies/${typeUrl}/${id}`);\r\n } else {\r\n history.push(`/companies`);\r\n }\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await CompaniesService.remove(itemToRemove);\r\n onCancelRemove();\r\n navigateTo();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete company`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const showRemoveItemDialog = async (item: CompanyDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onSubmit = async (form: CompanyDto) => {\r\n try {\r\n Loading.show();\r\n const tempItem = { ...item };\r\n\r\n\r\n tempItem.name = form.name;\r\n tempItem.taxNumber = form.taxNumber;\r\n tempItem.email = form.email;\r\n tempItem.phone = form.phone;\r\n tempItem.website = form.website;\r\n tempItem.addressLine = form.addressLine;\r\n tempItem.zipCode = form.zipCode;\r\n tempItem.city = form.city;\r\n tempItem.country = form.country;\r\n tempItem.removeAttachment = tempItem.logoId && medias.length === 0 ? true : false;\r\n tempItem.trackingProvider = form.trackingProvider;\r\n tempItem.trackingProviderUsername = form.trackingProviderUsername;\r\n tempItem.trackingProviderPassword = form.trackingProviderPassword;\r\n tempItem.trackingProviderKey = form.trackingProviderKey;\r\n tempItem.useValueWithVat = form.useValueWithVat;\r\n tempItem.languageId = form.languageId;\r\n\r\n tempItem.packs = form.packs;\r\n\r\n\r\n // try {\r\n // await CompaniesService.validateVatNumber(form);\r\n\r\n // } catch (error) { \r\n // addToast(t('common.errors.invalid_tax_number'), { appearance: 'warning' }); \r\n // Loading.hide();\r\n // return;\r\n // }\r\n\r\n if (tempItem && tempItem.id != '') {\r\n await CompaniesService.update(tempItem, medias)\r\n navigateTo('details', tempItem.id);\r\n } else if (tempItem) {\r\n const id = await CompaniesService.create(tempItem, medias)\r\n navigateTo('details', id);\r\n }\r\n setItem(tempItem)\r\n setHasLoaded(false)\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n } catch (error) {\r\n if (error?.response?.status === 409) {\r\n addToast(t('common.messages.company_already_exists'), { appearance: 'warning' });\r\n }\r\n else if (error.message.includes('403')) {\r\n addToast(t('common.errors.tracking_auth'), { appearance: 'warning' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Provider Authentication Error - wrong credencials`, error);\r\n } else {\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't update the charge with id: ${form.id}`, error);\r\n }\r\n\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onAddMedias = (medias: CustomFile[]) => {\r\n setMedias(medias);\r\n }\r\n\r\n const onRemoveMedia = (mediaId: string) => {\r\n const filteredMedia = [...medias.filter(x => x.id != mediaId)];\r\n setMedias(filteredMedia);\r\n }\r\n\r\n const trackingProvider = form.watch('trackingProvider');\r\n\r\n const onError = async () => {\r\n addToast(t('common.errors.required_fields_empty'), { appearance: 'warning' });\r\n };\r\n\r\n useEffect(() => {\r\n clearErrors(['trackingProviderUsername', 'trackingProviderPassword', 'trackingProviderKey']);\r\n }, [watch('trackingProvider')]);\r\n\r\n\r\n\r\n const getPageTitle = () => {\r\n return type === 'new' ? t('companies.new') : type === 'edit' ? t('companies.edit') : t('companies.details');\r\n }\r\n\r\n const removePlan = (index: number | null) => {\r\n if (index === null) return;\r\n packs.remove(index);\r\n }\r\n\r\n const accountTab = () => (\r\n \r\n {hasLoaded &&
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n {type === 'new' && \r\n \r\n \r\n { return { ...x, label: x.fullLabel ?? '' } }) : []}\r\n placeholder={t('users.language')}\r\n rules={{ required: false }}\r\n isDisabled={isDetails}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={e => {\r\n if (e.value === TrackingProvider.NONE) {\r\n form.setValue('trackingProviderKey', undefined);\r\n form.setValue('trackingProviderUsername', undefined);\r\n form.setValue('trackingProviderPassword', undefined);\r\n } else if (e.value === TrackingProvider.EFCOLIA) {\r\n form.setValue('trackingProviderKey', undefined);\r\n } else {\r\n form.setValue('trackingProviderUsername', undefined);\r\n form.setValue('trackingProviderPassword', undefined);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n {trackingProvider && trackingProvider === TrackingProvider.EFCOLIA && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {trackingProvider === TrackingProvider.GPSTRACKING && <>\r\n \r\n \r\n \r\n !Utils.isStringNullOrEmpty(value) })}\r\n disabled={isDetails}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {t('plans.plans')}\r\n
\r\n {!isDetails &&
\r\n packs.append({})}>\r\n \r\n \r\n \r\n
}\r\n
\r\n \r\n
\r\n \r\n \r\n {packs.fields.map((ti, index) => {\r\n return (\r\n {\r\n removePlan(index);\r\n }}\r\n index={index}\r\n plansList={plansList}\r\n setRender={() => { setReRender(reRender + 1); }}\r\n />\r\n );\r\n })}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n navigateTo()}\r\n text={t('common.cancel')}\r\n />\r\n {isDetails && hasCompaniesWritePolicy &&\r\n showRemoveItemDialog({ id: item?.id } as CompanyDto)} />\r\n }\r\n {isDetails && hasCompaniesWritePolicy &&\r\n { navigateTo('edit', item?.id); }}\r\n />}\r\n {!isDetails && hasCompaniesWritePolicy &&\r\n }\r\n\r\n \r\n
\r\n
}\r\n
\r\n );\r\n\r\n const packsTab = () => (\r\n )\r\n\r\n\r\n const items: TabItem[] = [\r\n {\r\n id: 'account',\r\n title: t('companies.account'),\r\n content: accountTab()\r\n },\r\n {\r\n id: 'subscription',\r\n title: t('companies.plans'),\r\n content: packsTab()\r\n }\r\n ];\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {type !== 'new' && { setTabId(tId) }} />\r\n }\r\n {type === 'new' && accountTab()\r\n }\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CompanyScreen;\r\n","export default __webpack_public_path__ + \"static/media/ticket_white.382ddf2b.svg\";","export default __webpack_public_path__ + \"static/media/cone.f069d66e.svg\";","export default __webpack_public_path__ + \"static/media/spin.424abb43.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DriversTotalsDto } from 'api/drivers/models/DriversTotalsDto';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport TicketIcon from 'assets/svg/ticket_white.svg';\r\nimport ConeIcon from 'assets/svg/cone.svg';\r\nimport SpinIcon from 'assets/svg/spin.svg';\r\nimport styles from './CounterBoxDriver.module.scss';\r\n\r\ntype Props = {\r\n totals?: DriversTotalsDto\r\n};\r\n\r\nconst CounterBoxDriver: React.FC = ({ totals }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {/* #53040 Fleetmax - performance do editar das despesas */}\r\n {/* {totals && renderBox(\r\n UserIcon,\r\n t('drivers.list.average_kilometers'),\r\n totals.averageKilometers ?? 0,\r\n false,\r\n true\r\n )} */}\r\n {totals && renderBox(\r\n SpinIcon,\r\n t('drivers.list.total_refunds'),\r\n totals.totalRefunds ?? 0, true\r\n )}\r\n {totals && renderBox(\r\n TicketIcon,\r\n t('drivers.list.total_fines'),\r\n totals.totalFines ?? 0\r\n )}\r\n {totals && renderBox(\r\n ConeIcon,\r\n t('drivers.list.total_accidents'),\r\n totals.totalAccidents ?? 0\r\n )}\r\n
\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter?: number | undefined, isMoney?: boolean, isKm?: boolean) => {\r\n return \r\n }\r\n\r\n return (<>\r\n {totals && renderCounterBoxes()}\r\n \r\n );\r\n}\r\n\r\nexport default CounterBoxDriver;","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './DriversFilters.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport moment from 'moment';\r\n\r\nexport interface Filters {\r\n driverId?: string;\r\n driverName?: string;\r\n vehicleId?: string;\r\n vehicleName?: string;\r\n refunds?: number[];\r\n fines?: number[];\r\n accidents?: number[];\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n page?:number;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n isDriver?: boolean;\r\n}\r\n\r\nconst DriversFilters: React.FC = ({ filters, onChange, onFilter, isDriver }: Props) => {\r\n const { t } = useTranslation();\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue } = form;\r\n const [driversOptions, setDrivers] = useState([]);\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n\r\n const getData = async () => {\r\n const [_driversOptions, _vehiclesOptions] = await Promise.all([\r\n DriversService.catalog(),\r\n VehiclesService.catalog()\r\n ]);\r\n setDrivers(_driversOptions);\r\n setVehicles(_vehiclesOptions);\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n form.reset({\r\n driverId: undefined,\r\n driverName: undefined,\r\n refunds: undefined,\r\n fines: undefined,\r\n accidents: undefined,\r\n startDate: undefined,\r\n endDate: undefined\r\n });\r\n onInputChange();\r\n onSubmit(form.getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(form.getValues());\r\n }\r\n\r\n const getVal = (arr: any[] | undefined, index: number): any | undefined => {\r\n return arr && arr.length > index ? arr[index] : undefined;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n form.setValue('startDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('endDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('startDate')}\r\n defaultEndValue={form.getValues('endDate')}\r\n isDatePicker\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('vehicleName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ? { label: vehiclesOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n \r\n {!isDriver && \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value);\r\n setValue('driverName', data?.label);\r\n onInputChange();\r\n }}\r\n value={driversOptions.find(x => x.value === value) ? { label: driversOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"driverId\"\r\n defaultValue={form.getValues('driverId')} />\r\n \r\n }\r\n {!isDriver && \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue == 0 ? Number(endValue) : undefined);\r\n setValue('refunds', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('refunds'), 0)}\r\n defaultEndValue={getVal(getValues('refunds'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n }\r\n {!isDriver && \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue == 0 ? Number(endValue) : undefined);\r\n setValue('fines', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('fines'), 0)}\r\n defaultEndValue={getVal(getValues('fines'), 1)}\r\n />\r\n }\r\n {!isDriver && \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue == 0 ? Number(endValue) : undefined);\r\n setValue('accidents', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('accidents'), 0)}\r\n defaultEndValue={getVal(getValues('accidents'), 1)}\r\n />\r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(DriversFilters);","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport { DriversListItemDto } from 'api/drivers/models/DriversListItemDto';\r\nimport { DriversTotalsDto } from 'api/drivers/models/DriversTotalsDto';\r\nimport { DriversSearchCriteria } from 'api/drivers/models/DriversSearchCriteria';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport Logger from 'common/services/Logger';\r\nimport Loading from 'common/services/Loading';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport CounterBoxDriver from '../driver/components/counterBoxDriver/CounterBoxDriver';\r\nimport NoImage from 'assets/svg/semfoto.svg';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport DriversFilters, { Filters } from './components/DriversFilters';\r\nimport styles from './DriversScreen.module.scss';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\n\r\nconst DriversScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'u.real_name',\r\n orderBy: 'asc'\r\n });\r\n const [drivers, setDrivers] = useState([]);\r\n const history = useHistory();\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n const [totals, setTotals] = useState({ averageKilometers: 0, totalRefunds: 0, totalFines: 0, totalAccidents: 0 });\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasUsersWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_USERS_WRITE']);\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [driversItems, _totals] = await Promise.all([\r\n DriversService.getList(criteria),\r\n DriversService.getTotals(criteria)\r\n ]);\r\n\r\n setTotalItems(driversItems.totalItems);\r\n setDrivers(driversItems.items);\r\n setTotals({ ..._totals });\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.DRIVERS, `Couldn't get drivers list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const renderImageDescCell = (row: DriversListItemDto) => {\r\n return (\r\n <>\r\n
\r\n
{row.name || '-'}
\r\n
\r\n
{row.email}
\r\n \r\n )\r\n }\r\n\r\n const renderTableActionCell = (\r\n row: DriversListItemDto,\r\n ) => {\r\n const urlDetails = `drivers/details/${row.id}`;\r\n const urlEdit = `drivers/edit/${row.id}`;\r\n\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n { hasUsersWritePolicy && \r\n {t('common.edit')}\r\n }\r\n { hasUsersWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const showRemoveItemDialog = (item: DriversListItemDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await UsersService.remove(itemToRemove as any);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete charge`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('drivers.list.driver'),\r\n onSearch: onTableFilter,\r\n searchField: 'u.real_name',\r\n renderCell: renderImageDescCell,\r\n width: 'fill'\r\n },\r\n {\r\n renderCell: row =>\r\n
\r\n
\r\n {!!row?.vehiclePhotoUrl &&
}\r\n
\r\n
,\r\n width: 'fill',\r\n hideOn: ['sm']\r\n },\r\n {\r\n name: t('drivers.list.vehicle_on_travel'),\r\n renderCell: row =>\r\n
\r\n
{row.vehicleRegistrationNumber}
\r\n {(!!row.vehicleBrandName || !!row.vehicleModelName) &&
{row.vehicleBrandName + (' | ') + row.vehicleModelName}
}\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'driver_verifications.vehicle_registration_number',\r\n width: 'fill',\r\n hideOn: ['sm']\r\n },\r\n // {\r\n // name: <>\r\n //
\r\n // {t('drivers.list.average_kms')}\r\n //
\r\n // \r\n // ,\r\n // renderCell: row =>
\r\n // \r\n //
,\r\n // onSearch: onTableFilter,\r\n // searchField: 'average_kms',\r\n // hideOn: ['sm', 'md', 'lg'],\r\n // width: 'fill'\r\n // },\r\n {\r\n name: t('drivers.list.refunds'),\r\n renderCell: row =>
\r\n
\r\n
{row.refundsNotDone ? row.refundsNotDone : 0} {t('drivers.list.refunds_not_done')}
\r\n
,\r\n onSearch: onTableFilter,\r\n cellAlignment: 'right',\r\n columnCellAlignment: 'right',\r\n searchField: 'coalesce(uRefunds.total,0)',\r\n width: 'fill',\r\n hideOn: ['sm', 'md', 'lg']\r\n },\r\n {\r\n name: t('drivers.filter.fines'),\r\n renderCell: row =>
\r\n
{row.fines ? row.fines : 0}
\r\n
{t('drivers.list.total')}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'coalesce(uCharges.total,0)',\r\n width: 'fill',\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('drivers.filter.accidents'),\r\n renderCell: row =>
\r\n
{row.accidents ? row.accidents : 0}
\r\n
,\r\n onSearch: onTableFilter,\r\n searchField: 'coalesce(uAccidents.total,0)',\r\n width: 'fill',\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n },\r\n {\r\n name: '',\r\n width: 'fill',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n }\r\n ];\r\n return cols;\r\n }, [onTableFilter]);\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/drivers/${type}/${id}/user/list`);\r\n } else {\r\n history.push(`/drivers/${type}`);\r\n }\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters);\r\n\r\n if (event.ctrlKey) {\r\n window.open(history.location.pathname + '/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, [criteria]);\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('DRIVERSFILTER');\r\n if (cachedFilters != null) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('DRIVERSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n updateTotalFilters(f);\r\n\r\n criteria.driverId = f.driverId;\r\n criteria.minRefunds = f.refunds && f.refunds[0];\r\n criteria.maxRefunds = f.refunds && f.refunds[1];\r\n criteria.minFines = f.fines && f.fines[0];\r\n criteria.maxFines = f.fines && f.fines[1];\r\n criteria.minAccidents = f.accidents && f.accidents[0];\r\n criteria.maxAccidents = f.accidents && f.accidents[1];\r\n criteria.vehicleId = f.vehicleId;\r\n criteria.startDate = f.startDate;\r\n criteria.endDate = f.endDate;\r\n\r\n if (isOnLoad && f.page) {\r\n criteria.page = f.page\r\n } else {\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.driverId) {\r\n total++;\r\n }\r\n if (f.vehicleId) {\r\n total++;\r\n }\r\n if (f.fines) {// && (filters.fines[0] >= 0 || filters.fines[1] < 1000)) {\r\n total++;\r\n }\r\n if (f.accidents) {// && (filters.accidents[0] > 0 || filters.accidents[1] < 1000)) {\r\n total++;\r\n }\r\n if (f.refunds) {//&& (filters.refunds[0] >= 0 || filters.refunds[1] < 1000)) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasUsersWritePolicy && navigateTo('new')} />}\r\n
\r\n\r\n { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehicleName,\r\n label: t('drivers.list.vehicle'),\r\n onRemove: () => { filters.vehicleId = filters.vehicleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.startDate && filters.endDate ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.startDate ? <>{t('common.range.from')} \r\n : filters.endDate ? <>{t('common.range.to')} : undefined,\r\n label: t('maintenances.expected_date'),\r\n onRemove: () => { filters.startDate = filters.endDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.refunds || !filters.refunds.length || !filters.refunds.find(x => x !== undefined) ? undefined :\r\n filters.refunds.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.refunds[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('drivers.list.refunds'),\r\n onRemove: () => { filters.refunds = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.fines || !filters.fines.length || !filters.fines.find(x => x !== undefined) ? undefined :\r\n filters.fines.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.fines[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('drivers.filter.fines'),\r\n onRemove: () => { filters.fines = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.accidents || !filters.accidents.length || !filters.accidents.find(x => x !== undefined) ? undefined :\r\n filters.accidents.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.accidents[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('drivers.filter.accidents'),\r\n onRemove: () => { filters.accidents = undefined; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {totals && }\r\n\r\n \r\n onRowClick(event, row.id)}\r\n allowHover={true}\r\n onHref={row => `drivers/details/${row.id}`}\r\n initialSearch={{ colField: 'u.real_name', isOrderAsc: true }}\r\n />\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DriversScreen;\r\n","import { ChargeDto } from 'api/charges/models/ChargeDto';\r\nimport { ChargesSearchCriteria } from 'api/charges/models/ChargesSearchCriteria';\r\nimport Button from 'common/components/button/Button';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport ListChargesScreen from 'screens/charges/ListChargesScreen';\r\nimport ChargeScreen from 'screens/vehicle/components/carChargeTab/components/ChargeScreen';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport styles from './DriverChargeTab.module.scss';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n CHARGE = 'CHARGE'\r\n}\r\ntype Props = {\r\n criteriaProp?: ChargesSearchCriteria;\r\n reloadCounters?: () => void;\r\n}\r\n\r\nconst DriverChargeTab = ({ criteriaProp, reloadCounters }: Props) => {\r\n const { driverId, type, tabId, itemId, itemType } = useParams<{ driverId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n\r\n const onCancel = () => {\r\n //history.goBack(); \r\n history.push(`/drivers`);\r\n };\r\n\r\n return (\r\n
\r\n {itemType === ScreenType.LIST.toString().toLowerCase() &&\r\n {\r\n history.push(`/drivers/details/${driverId}/${tabId}/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }}\r\n criteriaProp={criteriaProp}>\r\n }\r\n\r\n {itemType !== ScreenType.LIST.toString().toLowerCase() &&\r\n { (reloadCounters && reloadCounters()); history.goBack(); }}\r\n />}\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DriverChargeTab;","import { AccidentDto } from 'api/accidents/models/AccidentDto';\r\nimport { ChargesSearchCriteria } from 'api/charges/models/ChargesSearchCriteria';\r\nimport Button from 'common/components/button/Button';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport ListAccidentsScreen from 'screens/vehicle/components/carAccidentTab/components/AccidentList/ListAccidentsScreen';\r\nimport AccidentScreen from 'screens/vehicle/components/carAccidentTab/components/AccidentScreen';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport styles from './DriverAccidentTab.module.scss';\r\n\r\nenum ScreenType {\r\n LIST = 'LIST',\r\n ACCIDENT = 'ACCIDENT'\r\n}\r\n\r\ntype Props = {\r\n criteriaProp?: ChargesSearchCriteria;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst DriverAccidentTab: React.FC = ({ criteriaProp }: Props) => {\r\n const history = useHistory();\r\n const { driverId, type, tabId, itemId, itemType } = useParams<{ driverId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n\r\n const { t } = useTranslation();\r\n\r\n const onCancel = () => {\r\n //history.goBack(); \r\n history.push(`/drivers`);\r\n };\r\n\r\n return (\r\n
\r\n {itemType === ScreenType.LIST.toString().toLowerCase() &&\r\n history.push(`/drivers/details/${driverId}/${tabId}/${isDetails ? 'details' : 'edit'}/${item.id}`)}\r\n isDriver\r\n criteriaProp={criteriaProp} />}\r\n {itemType !== ScreenType.LIST.toString().toLowerCase() &&\r\n history.goBack()}\r\n onItemDetails={(state: boolean) => history.push(`/drivers/details/${driverId}/${tabId}/${state ? 'details' : 'edit'}/${itemId}`)}\r\n isDriver />}\r\n\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DriverAccidentTab;","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { DriversSearchCriteria } from 'api/drivers/models/DriversSearchCriteria';\r\nimport { DriversTotalsDto } from 'api/drivers/models/DriversTotalsDto';\r\nimport Logger from 'common/services/Logger';\r\nimport Loading from 'common/services/Loading';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport DriverChargeTab from './components/driverChargeTab/DriverChargeTab';\r\nimport DriverAccidentTab from './components/driverAccidentTab/DriverAccidentTab';\r\nimport CounterBoxDriver from './components/counterBoxDriver/CounterBoxDriver';\r\nimport { Types } from 'screens/vehicle/VehicleScreen';\r\nimport DriverUserTab from './components/driverUserTab/DriverUserTab';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport DriversFilters, { Filters as FiltersDriversModel } from '../drivers/components/DriversFilters';\r\nimport styles from './DriverScreen.module.scss';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport ChargeFiltersScreen, { Filters as FiltersChargesModel } from '../charges/components/ChargeFiltersScreen';\r\nimport { ChargesSearchCriteria } from 'api/charges/models/ChargesSearchCriteria';\r\nimport { AccidentsSearchCriteria } from 'api/accidents/models/AccidentsSearchCriteria';\r\nimport AccidentFiltersScreen, { Filters as FiltersAccidentsModel } from 'screens/vehicle/components/carAccidentTab/components/AccidentFilters/AccidentFiltersScreen';\r\n\r\nexport type CloseType = 'edit' | 'details';\r\n\r\nconst DriverScreen = () => {\r\n const { t } = useTranslation();\r\n const { driverId, type, tabId } = useParams<{ driverId: string, type: Types, tabId: string, itemType: string, itemId: string }>();\r\n\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const isDriver = !!driverId;\r\n\r\n const [criteriaUsers, setCriteriaUsers] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'u.real_name',\r\n orderBy: 'asc',\r\n driverId: isDriver ? driverId : undefined,\r\n });\r\n const [totals, setTotals] = useState({ averageKilometers: 0, totalRefunds: 0, totalFines: 0, totalAccidents: 0 });\r\n const [filtersUsers, setFiltersUsers] = useState({});\r\n const [filtersUsersTotal, setFiltersUsersTotal] = useState(0);\r\n\r\n const [criteriaCharges, setCriteriaCharges] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: undefined,\r\n responsibleId: isDriver ? driverId : undefined,\r\n orderColumn: 'date',\r\n orderBy: 'desc',\r\n startDate: undefined,\r\n endDate: undefined\r\n });\r\n const [filtersCharges, setFiltersCharges] = useState({});\r\n const [filtersChargesTotal, setFiltersChargesTotal] = useState(0);\r\n\r\n const [criteriaAccidents, setCriteriaAccidents] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: undefined,\r\n driverId: isDriver ? driverId : undefined,\r\n orderColumn: 'date',\r\n orderBy: 'desc'\r\n });\r\n const [filtersAccidents, setFiltersAccidents] = useState({});\r\n const [filtersAccidentsTotal, setFiltersAccidentsTotal] = useState(0);\r\n\r\n const [forceRenderTab, setForceRenderTab] = useState(new Date());\r\n\r\n const navigateToTab = (tabId: string) => {\r\n history.push(`/drivers/details/${driverId}/${tabId}/list`);\r\n }\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const _totals = await DriversService.getTotals(criteriaUsers);\r\n setTotals(_totals);\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.DRIVERS, `Couldn't get driver information `, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const reloadCounters = () => {\r\n getData();\r\n }\r\n\r\n const canAddDrivers = async () => {\r\n try {\r\n Loading.show();\r\n await UsersService.candAddUsers();\r\n Loading.hide();\r\n } catch (error) {\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n history.push(`/account/details/subscription`);\r\n }\r\n } \r\n }\r\n\r\n\r\n const tabs: TabItem[] = useMemo(() => {\r\n const items: TabItem[] = [\r\n {\r\n id: 'user',\r\n title: t('drivers.user'),\r\n content: \r\n },\r\n {\r\n id: 'costs',\r\n title: t('drivers.costs'),\r\n content: \r\n },\r\n {\r\n id: 'accidents',\r\n title: t('drivers.accidents'),\r\n content: \r\n }\r\n /*,{\r\n id: 'history',\r\n title: t('drivers.history'),\r\n content: \r\n }*/\r\n ];\r\n return items;\r\n }, [criteriaCharges, criteriaAccidents]); \r\n\r\n useEffect(() => {\r\n \r\n if (!driverId) {\r\n canAddDrivers();\r\n }\r\n getData();\r\n }, [driverId, criteriaUsers]);\r\n\r\n const onChangeFiltersUsers = (f: FiltersDriversModel, forcedChange?: boolean) => {\r\n updateTotalFiltersUsers(f);\r\n setFiltersUsers(f);\r\n\r\n criteriaUsers.driverId = isDriver ? driverId : undefined;\r\n criteriaUsers.minRefunds = f.refunds && f.refunds[0];\r\n criteriaUsers.maxRefunds = f.refunds && f.refunds[1];\r\n criteriaUsers.minFines = f.fines && f.fines[0];\r\n criteriaUsers.maxFines = f.fines && f.fines[1];\r\n criteriaUsers.minAccidents = f.accidents && f.accidents[0];\r\n criteriaUsers.maxAccidents = f.accidents && f.accidents[1];\r\n criteriaUsers.vehicleId = f.vehicleId;\r\n criteriaUsers.startDate = f.startDate;\r\n criteriaUsers.endDate = f.endDate;\r\n setCriteriaUsers({ ...criteriaUsers, page: 1 });\r\n\r\n if(!forcedChange)\r\n {\r\n onChangeFiltersAccidents({ ...filtersAccidents, startDate: criteriaUsers.startDate, endDate: criteriaUsers.endDate, vehicleId: criteriaUsers.vehicleId }, true);\r\n onChangeFiltersCharges({ ...filtersCharges, startDate: criteriaUsers.startDate, endDate: criteriaUsers.endDate, vehicleId: criteriaUsers.vehicleId }, true);\r\n setForceRenderTab(new Date());\r\n }\r\n }\r\n\r\n const updateTotalFiltersUsers = (f: FiltersDriversModel) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.driverId) {\r\n total++;\r\n }\r\n if (f.vehicleId) {\r\n total++;\r\n }\r\n if (f.fines) {// && (filters.fines[0] >= 0 || filters.fines[1] < 1000)) {\r\n total++;\r\n }\r\n if (f.accidents) {// && (filters.accidents[0] > 0 || filters.accidents[1] < 1000)) {\r\n total++;\r\n }\r\n if (f.refunds) {//&& (filters.refunds[0] >= 0 || filters.refunds[1] < 1000)) {\r\n total++;\r\n }\r\n\r\n setFiltersUsersTotal(total);\r\n }\r\n\r\n\r\n const onChangeFiltersCharges = (f: FiltersChargesModel, forcedChange?: boolean) => { \r\n updateTotalFiltersCharges(f);\r\n setFiltersCharges(f); \r\n criteriaCharges.responsibleId = isDriver ? driverId : f.responsibleId; \r\n criteriaCharges.startDate = f.startDate;\r\n criteriaCharges.endDate = f.endDate;\r\n criteriaCharges.vehicleId = f.vehicleId;\r\n criteriaCharges.typeId = f.typeId;\r\n criteriaCharges.supplierId = f.supplierId;\r\n criteriaCharges.minCost = f.cost && f.cost[0];\r\n criteriaCharges.maxCost = f.cost && f.cost[1];\r\n criteriaCharges.refundSituation = f.refundSituation;\r\n setCriteriaCharges({ ...criteriaCharges, page: 1 });\r\n \r\n if(!forcedChange)\r\n {\r\n onChangeFiltersUsers({ ...filtersUsers, startDate: criteriaCharges.startDate, endDate: criteriaCharges.endDate, vehicleId: criteriaCharges.vehicleId }, true);\r\n onChangeFiltersAccidents({ ...filtersAccidents, startDate: criteriaCharges.startDate, endDate: criteriaCharges.endDate, vehicleId: criteriaCharges.vehicleId }, true);\r\n setForceRenderTab(new Date());\r\n } \r\n }\r\n\r\n const updateTotalFiltersCharges = (f: FiltersChargesModel) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.vehicleId && f.vehicleId.length > 0) {\r\n total++;\r\n }\r\n if (f.typeId && f.typeId.length > 0) {\r\n total++;\r\n }\r\n if (f.supplierId && f.supplierId.length > 0) {\r\n total++;\r\n }\r\n if (f.responsibleId && f.responsibleId.length > 0 && !isDriver) {\r\n total++;\r\n }\r\n if (f.refundSituation != null) {\r\n total++;\r\n }\r\n if (f.cost && (f.cost[0] > 0 || f.cost[1] > 0)) {\r\n total++;\r\n }\r\n\r\n setFiltersChargesTotal(total);\r\n }\r\n\r\n const onChangeFiltersAccidents = (f: FiltersAccidentsModel, forcedChange?: boolean) => {\r\n updateTotalFiltersAccidents(f);\r\n setFiltersAccidents(f);\r\n criteriaAccidents.driverId = isDriver ? driverId : undefined;\r\n criteriaAccidents.startDate = f.startDate;\r\n criteriaAccidents.endDate = f.endDate;\r\n criteriaAccidents.guilty = f.guilty;\r\n criteriaAccidents.allIn = f.allIn;\r\n criteriaAccidents.vehicleId = f.vehicleId;\r\n setCriteriaAccidents({ ...criteriaAccidents, page: 1 });\r\n if(!forcedChange)\r\n {\r\n onChangeFiltersUsers({ ...filtersUsers, startDate: criteriaAccidents.startDate, endDate: criteriaAccidents.endDate, vehicleId: criteriaAccidents.vehicleId }, true);\r\n onChangeFiltersCharges({ ...filtersCharges, startDate: criteriaAccidents.startDate, endDate: criteriaAccidents.endDate, vehicleId: criteriaAccidents.vehicleId }, true);\r\n setForceRenderTab(new Date());\r\n } \r\n }\r\n\r\n const updateTotalFiltersAccidents = (f: FiltersAccidentsModel) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.allIn) {\r\n total++;\r\n }\r\n if (f.driverId && !isDriver) {\r\n total++;\r\n }\r\n if (f.guilty === false || f.guilty === true) {\r\n total++;\r\n }\r\n if (f.vehicleId && f.vehicleId.length > 0) {\r\n total++;\r\n }\r\n\r\n setFiltersAccidentsTotal(total);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {isDriver && tabId == 'user' ? updateTotalFiltersUsers(filtersUsers) \r\n : tabId == 'costs' ? updateTotalFiltersCharges(filtersCharges)\r\n : tabId == 'accidents' ? updateTotalFiltersAccidents(filtersAccidents) : undefined}\r\n content={setIsPopoverOpen => \r\n tabId == 'user' ? \r\n { setIsPopoverOpen(false); onChangeFiltersUsers(f) }}\r\n onChange={f => updateTotalFiltersUsers(f)}\r\n />\r\n : tabId == 'costs' ?\r\n { setIsPopoverOpen(false); onChangeFiltersCharges(f) }}\r\n onChange={f => updateTotalFiltersCharges(f)}\r\n />\r\n : tabId == 'accidents' ? \r\n { setIsPopoverOpen(false); onChangeFiltersAccidents(f) }}\r\n onChange={f => updateTotalFiltersAccidents(f)}\r\n />\r\n : <>\r\n }>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersUsersTotal > 0 &&\r\n
{\r\n tabId == 'user' ? filtersUsersTotal \r\n : tabId == 'costs' ? filtersChargesTotal\r\n : tabId == 'accidents' ? filtersAccidentsTotal : undefined}
\r\n }\r\n
\r\n )}\r\n }\r\n
\r\n\r\n {totals && }\r\n\r\n { (!type || !!type && type === 'details') && navigateToTab(tabId)}\r\n />}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DriverScreen;","export default __webpack_public_path__ + \"static/media/desktop_i_calendar.18ca6940.svg\";","import Box from 'common/components/box/Box';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport CarVerificationList from 'screens/vehicle/components/carVerificationTab/components/carVerificationList/CarVerificationList';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport styles from './VerificationScreen.module.scss';\r\nimport CarVerification from 'screens/vehicle/components/carVerificationTab/components/carVerification/CarVerification';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { CarVerificationSearchCriteria } from 'api/carVerification/models/CarVerificationSearchCriteria';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport VerificationFiltersScreen, { Filters } from './components/list-filters/VerificationFiltersScreen';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport AlertIcon from 'assets/svg/i_alertas_white.svg';\r\nimport CalendarIcon from 'assets/svg/desktop_i_calendar.svg';\r\nimport CarVerificationService from 'api/carVerification/CarVerificationService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VerificationCounterListDto } from 'api/carVerification/models/VerificationDto';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport { InterventionTypeEnum } from 'api/carVerification/enums/InterventionTypeEnum';\r\nimport { getInterventionTypeStatusColor } from 'common/utils/VerificationsUtils';\r\n\r\n\r\ntype RouteProps = {\r\n itemId: string;\r\n type: 'new' | 'edit' | 'details';\r\n}\r\n\r\nconst VerificationScreen = () => {\r\n const { itemId, type } = useParams();\r\n\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.verification_date',\r\n orderBy: 'desc'\r\n });\r\n\r\n const [updateRender, setUpdateRender] = useState(0);\r\n const [pageLoad, setPageLoad] = useState(false);\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasVerificationsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VERIFICATIONS_WRITE']);\r\n const hasCountersPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['CHARGES_TOTAL_READ']);\r\n\r\n const [counters, setCounters] = useState();\r\n\r\n const getData = async () => {\r\n try {\r\n let countersDB = null;\r\n if (hasCountersPolicy) {\r\n countersDB = await CarVerificationService.getCountersList(criteria);\r\n }\r\n if (countersDB) {\r\n setCounters(countersDB);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VERIFICATIONS, `Couldn't get counters verifications list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.vehicleId) {\r\n total++;\r\n }\r\n if (f.type) {\r\n total++;\r\n }\r\n if (f.responsibleId) {\r\n total++;\r\n }\r\n if (f.driverId) {\r\n total++;\r\n }\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.interventionType) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('VERIFICATIONSFILTER');\r\n setPageLoad(true)\r\n if(cachedFilters != null){\r\n const _filters = JSON.parse(cachedFilters);\r\n setCriteria({ ...criteria, ..._filters });\r\n setFilters({ ..._filters });\r\n updateTotalFilters(_filters);\r\n }\r\n }\r\n\r\n const onChangeFilters = (_filters: Filters) => {\r\n setCriteria({ ...criteria, page: 1, ..._filters });\r\n setFilters({ ..._filters });\r\n updateTotalFilters(_filters);\r\n localStorage.setItem('VERIFICATIONSFILTER', JSON.stringify(_filters));\r\n }\r\n\r\n const goToList = () => {\r\n navigateTo();\r\n }\r\n\r\n const goToDetails = (id: string) => {\r\n navigateTo('details', id);\r\n }\r\n\r\n const goToEdit = (id: string) => {\r\n if (hasVerificationsWritePolicy) {\r\n navigateTo('edit', id);\r\n } else {\r\n goToDetails(id);\r\n }\r\n }\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(typeUrl === 'new' ? '/verifications/new' : `/verifications/${typeUrl}/${id}`);\r\n } else {\r\n history.push('/verifications');\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setUpdateRender(updateRender + 1);\r\n }, [type]); //criteria, type\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(pageLoad){getData()}\r\n }, [criteria]);\r\n\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {counters && renderBox(\r\n CarIcon,\r\n t('car_verification.list.number_vehicles'),\r\n counters.numberVehicles ?? 0\r\n )}\r\n {counters && renderBox(\r\n CalendarIcon,\r\n t('car_verification.list.number_verifications'),\r\n counters.numberVerifications ?? 0\r\n )}\r\n {counters && renderBox(\r\n AlertIcon,\r\n t('car_verification.list.annotations'),\r\n undefined, undefined,\r\n [\r\n { counter: counters.numberAnnotationsUrgent ?? 0, color: getInterventionTypeStatusColor(InterventionTypeEnum.INTERVENTION_URGENT).color },\r\n { counter: counters.numberAnnotationsInformative ?? 0, color: getInterventionTypeStatusColor(InterventionTypeEnum.INFORMATION).color },\r\n { counter: counters.numberAnnotationsIntervention ?? 0, color: getInterventionTypeStatusColor(InterventionTypeEnum.INTERVENTION).color }\r\n ],\r\n t('car_verification.list.annotation_type.urgent') + ' | ' + t('car_verification.list.annotation_type.informative') + ' | ' + t('car_verification.list.annotation_type.intervention')\r\n )}\r\n\r\n
\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter?: number | undefined, isMoney?: boolean, counters?: any, subLabel?: string) => {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {!type && <>\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n />}\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasVerificationsWritePolicy && navigateTo('new')} />}\r\n }\r\n
\r\n\r\n { filters.vehicleId = filters.vehicleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.type,\r\n label: t('vehicle.type'),\r\n onRemove: () => { filters.type = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.responsibleName,\r\n label: t('common.responsible'),\r\n onRemove: () => { filters.responsibleId = filters.responsibleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.driverName,\r\n label: t('common.driver'),\r\n onRemove: () => { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.startDate && filters.endDate ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.startDate ? <>{t('common.range.from')} \r\n : filters.endDate ? <>{t('common.range.to')} : undefined,\r\n label: t('car_verification.filter_date'),\r\n onRemove: () => { filters.startDate = filters.endDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.interventionType ? t(`car_verification.intervention_type.${filters.interventionType}`.toLowerCase() as any) : '',\r\n label: t('common.intervention_type'),\r\n onRemove: () => { filters.interventionType = undefined; onChangeFilters(filters) }\r\n }\r\n ]} />\r\n\r\n {!type && counters && renderCounterBoxes()}\r\n\r\n \r\n {!type && pageLoad && <>\r\n \r\n }\r\n {type &&\r\n }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default VerificationScreen;\r\n","export default __webpack_public_path__ + \"static/media/eye-solid.e6b2851a.svg\";","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport styles from './AlertsScreen.module.scss';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport EyeIcon from 'assets/svg/eye-solid.svg';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport Loading from 'common/services/Loading';\r\nimport AlertsFilters, { Filters } from './components/alertsFilters/AlertsFilters';\r\nimport AlertsService from 'api/alerts/AlertsService';\r\nimport { AlertsSearchCriteria } from 'api/alerts/models/AlertsSearchCriteria';\r\nimport { AlertsListItemDto } from 'api/alerts/models/AlertsListItemDto';\r\nimport { getAlertTypeColor, getSubjectTypeColor } from 'common/utils/AlertsUtils';\r\nimport { AlertsTotalsDto } from 'api/alerts/models/AlertsTotalsDto';\r\nimport AlertsList from './components/alertsList/AlertsList';\r\nimport Box from 'common/components/box/Box';\r\nimport AlertsFiltersHeader from './components/alertsFiltersHeader/AlertsFiltersHeader';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\n\r\nconst AlertsScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'a.created_date',\r\n orderBy: 'desc',\r\n responsibleId: loggedUser?.id\r\n });\r\n const [alerts, setAlerts] = useState([]);\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [filters, setFilters] = useState({ responsibleId: criteria.responsibleId, responsibleName: loggedUser?.realName });\r\n const [filtersTotal, setFiltersTotal] = useState(1);\r\n const [totals, setTotals] = useState({ totalNotRead: 0, totalNotReadOwn: 0, totalRead: 0, totalTreated: 0, totalNonTreated: 0, totalInterventionUrgent: 0, totalInformation: 0, totalIntervention: 0 });\r\n //const [showReadOnly, setShowReadOnly] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [alertsItems, _totals] = await Promise.all([\r\n AlertsService.getList({ ...criteria }), //AlertsService.getList({ ...criteria, readOnly: showReadOnly, notReadOnly: !showReadOnly }),\r\n AlertsService.getTotals(criteria)\r\n ]);\r\n\r\n alertsItems.items.forEach(a => {\r\n a.colorType = getAlertTypeColor(a.type);\r\n a.color = getSubjectTypeColor(a.subject);\r\n });\r\n\r\n setTotalItems(alertsItems.totalItems);\r\n setAlerts(alertsItems.items);\r\n setTotals(_totals);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally{\r\n Loading.hide();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n //getData();\r\n loadFilters();\r\n }, [criteria]);//}, [criteria, showReadOnly]);\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('ALERTSFILTER');\r\n if(cachedFilters != null){onChangeFilters(JSON.parse(cachedFilters),true)}\r\n else{getData()}\r\n }\r\n\r\n const saveFiltersOnCache = (f:Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('ALERTSFILTER', JSON.stringify(f));\r\n }\r\n\r\n\r\n const onChangeFilters = (_filters: Filters,isOnLoad?:boolean) => {\r\n updateTotalFilters(_filters);\r\n \r\n criteria.vehicleId = _filters.vehicleId;\r\n criteria.type = _filters.type;\r\n criteria.responsibleId = _filters.responsibleId;\r\n criteria.reading = _filters.reading;\r\n criteria.startDate = _filters.startDate;\r\n criteria.endDate = _filters.endDate;\r\n\r\n \r\n if(isOnLoad && _filters.page){\r\n criteria.page = _filters.page\r\n }else{\r\n criteria.page = 1;\r\n _filters.page = 1;\r\n }\r\n\r\n saveFiltersOnCache(_filters);\r\n getData();\r\n }\r\n\r\n const onPageChange = (page?: number,saveOnFilter?:boolean) => {\r\n if(page != undefined ){criteria.page = page}\r\n if(saveOnFilter) {\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters)\r\n }\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (_filters: Filters) => {\r\n let total = 0;\r\n\r\n if (_filters.vehicleId) {\r\n total++;\r\n }\r\n if (_filters.type) {\r\n total++;\r\n }\r\n if (_filters.responsibleId) {\r\n total++;\r\n }\r\n if (_filters.startDate) {\r\n total++;\r\n }\r\n if (_filters.endDate) {\r\n total++;\r\n }\r\n if (_filters.reading !== undefined) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {totals && renderBox(EyeIcon, t('alerts.list.alerts'), totals.totalRead + totals.totalNotRead ?? 0, undefined, undefined, t('common.total'),\r\n () => { getDataCounter(undefined) }, 'pointer')}\r\n {totals && renderBox(EyeIcon, t('alerts.list.alerts'), totals.totalRead ?? 0, undefined, undefined, t('alerts.list.reads'),\r\n () => { getDataCounter(true) }, 'pointer')}\r\n {totals && renderBox(EyeIcon, t('alerts.list.alerts'), totals.totalNotRead ?? 0, undefined, undefined, t('alerts.list.not_reads'),\r\n () => { getDataCounter(false) }, 'pointer')}\r\n
\r\n }\r\n\r\n const getDataCounter = async (mode: boolean | undefined) => {\r\n try {\r\n Loading.show();\r\n\r\n filters.reading = filters.readingName = undefined;\r\n updateTotalFilters(filters);\r\n setFilters(filters);\r\n criteria.reading = mode;\r\n\r\n const alertsItems = await AlertsService.getList({ ...criteria });\r\n\r\n alertsItems.items.forEach(a => {\r\n a.colorType = getAlertTypeColor(a.type);\r\n a.color = getSubjectTypeColor(a.subject);\r\n });\r\n\r\n setTotalItems(alertsItems.totalItems);\r\n setAlerts(alertsItems.items);\r\n\r\n criteria.reading = undefined;\r\n const _totals = await AlertsService.getTotals(criteria);\r\n setTotals(_totals);\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALERTS, `Couldn't get alerts list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter?: number | undefined, isMoney?: boolean, counters?: any, subLabel?: string, onClick?: () => void, cursor?: string) => {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n isDriver={!loggedUser?.companyId && !!loggedUser?.id}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n
\r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.startDate ? <>{t('common.range.from')} \r\n : filters.endDate ? <>{t('common.range.to')} : undefined,\r\n label: t('charges.filter_date'),\r\n onRemove: () => { filters.startDate = filters.endDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.responsibleName,\r\n label: t('alerts.list.alert_receiver'),\r\n onRemove: () => { filters.responsibleId = filters.responsibleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehicleName,\r\n label: t('vehicle.vehicle'),\r\n onRemove: () => { filters.vehicleId = filters.vehicleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.typeName,\r\n label: t('common.type'),\r\n onRemove: () => { filters.type = filters.typeName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.readingName,\r\n label: t('alerts.list.reading'),\r\n onRemove: () => { filters.reading = filters.readingName = undefined; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {totals && renderCounterBoxes()}\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AlertsScreen;\r\n","import Sidebar from 'common/layouts/sidebar/Sidebar';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport styles from './ForbiddenScreen.module.scss';\r\n\r\nconst ForbiddenScreen: React.FC = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

403 - {t('common.errors.page_forbidden')}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ForbiddenScreen;\r\n","export default __webpack_public_path__ + \"static/media/maintenance.52c31688.svg\";","import Box from 'common/components/box/Box';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport styles from './MaintenancesScreen.module.scss';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { CarVerificationSearchCriteria } from 'api/carVerification/models/CarVerificationSearchCriteria';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport MaintenanceFiltersScreen, { Filters } from './components/maintenanceFilters/MaintenancesFiltersScreen';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport ListMaintenancesScreen from 'screens/vehicle/components/carMaintenanceTab/components/MaintenanceList/ListMaintenancesScreen';\r\nimport { VehicleMaintenanceCounterListDto, VehicleMaintenanceDto } from 'api/vehicleMaintenances/models/VehicleMaintenanceDto';\r\nimport MaintenanceScreen from 'screens/vehicle/components/carMaintenanceTab/components/MaintenanceScreen';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport CoinsIcon from 'assets/svg/coins.svg';\r\nimport MaintenancesIcon from 'assets/svg/maintenance.svg';\r\nimport VehicleMaintenancesService from 'api/vehicleMaintenances/VehicleMaintenancesService';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\n\r\ntype RouteProps = {\r\n itemId: string;\r\n type: 'new' | 'edit' | 'details';\r\n}\r\n\r\nconst MaintenancesScreen = () => {\r\n const { itemId, type } = useParams();\r\n\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLE_MAINTENANCES_WRITE']);\r\n\r\n const [filters, setFilters] = useState({ vehiclesInactive: true });\r\n const [filtersTotal, setFiltersTotal] = useState(1);\r\n const [pageLoad, setPageLoad] = useState(false);\r\n\r\n const [counters, setCounters] = useState();\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'vm.expected_date',\r\n orderBy: 'desc',\r\n vehiclesInactive: true,\r\n });\r\n\r\n const getData = async () => {\r\n try {\r\n const countersDB = await VehicleMaintenancesService.getCountersList(criteria);\r\n setCounters(countersDB);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles counters`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.startDate || f.endDate) {\r\n total++;\r\n }\r\n if (f.currentState) {\r\n total++;\r\n }\r\n if (f.typeId) {\r\n total++;\r\n }\r\n if (f.supplierId) {\r\n total++;\r\n }\r\n if (f.vehicleId) {\r\n total++;\r\n }\r\n if (f.responsibleId) {\r\n total++;\r\n }\r\n if (f.vehiclesInactive) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n\r\n const savePageChange = (page: number) => {\r\n filters.page = page;\r\n localStorage.setItem('MAINTENANCEFILTER', JSON.stringify(filters));\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('MAINTENANCEFILTER');\r\n if (cachedFilters != null) {\r\n const filters = JSON.parse(cachedFilters);\r\n setCriteria({ ...criteria, ...filters });\r\n setFilters({ ...filters });\r\n updateTotalFilters(filters);\r\n }\r\n setPageLoad(true)\r\n }\r\n\r\n const onChangeFilters = (_filters: Filters) => {\r\n setCriteria({ ...criteria, ..._filters });\r\n setFilters({ ..._filters });\r\n updateTotalFilters(_filters);\r\n localStorage.setItem('MAINTENANCEFILTER', JSON.stringify(_filters));\r\n }\r\n\r\n const goToDetails = (id: string) => {\r\n navigateTo('details', id);\r\n }\r\n\r\n const goToEdit = (id: string) => {\r\n if (hasWritePolicy) {\r\n navigateTo('edit', id);\r\n } else {\r\n goToDetails(id);\r\n }\r\n }\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(typeUrl === 'new' ? '/maintenances/new' : `/maintenances/${typeUrl}/${id}`);\r\n } else {\r\n history.push('/maintenances');\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (pageLoad) { getData() }\r\n }, [criteria]);\r\n\r\n const renderBox = (icon: any, label: string, counter: number, isMoney?: boolean) => {\r\n return \r\n }\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {counters && renderBox(CarIcon, t('maintenances.list.number_vehicles'), counters.numberVehicles ?? 0)}\r\n {counters && renderBox(MaintenancesIcon, t('maintenances.list.number_maintenances'), counters.numberMaintenances ?? 0)}\r\n {counters && renderBox(CoinsIcon, t('maintenances.list.total_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }), counters.costTotalAccumulated ?? 0, true)}\r\n
\r\n }\r\n\r\n const onRowClick = (event: any, item: VehicleMaintenanceDto, isDetails: boolean) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n navigateTo(isDetails ? 'details' : 'edit', item.id);\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {!type && <>\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(_filters) }}\r\n onChange={_filters => updateTotalFilters(_filters)}\r\n />}\r\n >\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n {hasWritePolicy && navigateTo('new')} />}\r\n }\r\n
\r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.executedStartDate ? <>{t('common.range.from')} \r\n : filters.executedEndDate ? <>{t('common.range.to')} : undefined,\r\n label: t('maintenances.date_maintenance'),\r\n onRemove: () => { filters.executedStartDate = filters.executedEndDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.startDate && filters.endDate ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.startDate ? <>{t('common.range.from')} \r\n : filters.endDate ? <>{t('common.range.to')} : undefined,\r\n label: t('maintenances.expected_date'),\r\n onRemove: () => { filters.startDate = filters.endDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehicleName,\r\n label: t('vehicle.vehicle'),\r\n onRemove: () => { filters.vehicleId = filters.vehicleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.typeName ? t(`common.maintenance_contract_type.${filters.typeName}` as any) : filters.typeName,\r\n label: t('common.type'),\r\n onRemove: () => { filters.typeId = filters.typeName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.currentStateName,\r\n label: t('common.state'),\r\n onRemove: () => { filters.currentState = filters.currentStateName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.supplierName,\r\n label: t('common.supplier'),\r\n onRemove: () => { filters.supplierId = filters.supplierName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.responsibleName,\r\n label: t('common.responsible'),\r\n onRemove: () => { filters.responsibleId = filters.responsibleName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.vehiclesInactive ? t('common.yes') : '',\r\n label: t('maintenances.vehicle_inactives'),\r\n onRemove: () => { filters.vehiclesInactive = false; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {!type && counters && renderCounterBoxes()}\r\n\r\n \r\n {/* LIST */}\r\n {!type && pageLoad && <>\r\n null}\r\n onClickItem={(item: VehicleMaintenanceDto, isDetails: boolean, event: any) => onRowClick(event, item, isDetails)}>\r\n \r\n }\r\n\r\n {/* DETAILS */}\r\n {type && isDetails ? goToDetails(itemId) : goToEdit(itemId)}\r\n onSubmitDone={() => history.goBack()}\r\n onBackList={() => history.goBack()}\r\n titleHeader={type === 'new' ? t('maintenances.new') : type === 'details' ? t('maintenances.details') : type === 'edit' ? t('maintenances.edit') : t('maintenances.title')}\r\n />}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default MaintenancesScreen;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\nimport styles from './VehicleFiltersScreen.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport Input from 'common/components/input/Input';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport VehicleModelsService from 'api/vehicleModels/VehicleModelsService';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { CatalogBrandsSearchCriteria } from 'api/catalog/models/CatalogBrandsSearchCriteria';\r\nimport { CatalogModelsSearchCriteria } from 'api/catalog/models/CatalogModelsSearchCriteria';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport LocalsService from 'api/locals/LocalsService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport UsersService from 'api/users/UsersService';\r\n\r\nexport interface Filters {\r\n registrationNumber?: string;\r\n registrationDate?: Date | null;\r\n segmentId?: string;\r\n segmentName?: string;\r\n\r\n brandId?: string;\r\n brandName?: string;\r\n modelId?: string;\r\n modelName?: string;\r\n defaultDriverId?: string;\r\n defaultDriverName?: string;\r\n reservationAvailable?: boolean;\r\n hasGps?: boolean;\r\n\r\n driverId?: string;\r\n driverName?: string;\r\n costAverage?: number[];\r\n costAccumulated?: number[];\r\n costsStartDate?: Date;\r\n costsEndDate?: Date;\r\n\r\n immobilized?: boolean;\r\n localId?: string;\r\n localName?: string;\r\n\r\n inactives?: boolean;\r\n page?: number;\r\n allIn?: string;\r\n tags?: string;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n hasCountersPolicy?: boolean;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst VehicleFiltersScreen: React.FC = ({ filters, hasCountersPolicy, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch, control } = form;\r\n\r\n const [segmentsOptions, setSegments] = useState([]);\r\n //const [driversOptions, setDrivers] = useState([]);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const [localsOptions, setLocalsOptions] = useState([]);\r\n const [brandsOptions, setBrandsOptions] = useState([]);\r\n const [modelsOptions, setModelsOptions] = useState([]);\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n const [hasGps, setHasGps] = useState(false);\r\n\r\n const hasGpsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n const getData = async () => {\r\n const [\r\n segmentsOptionsDB,\r\n brands,\r\n models,\r\n drivers,\r\n locals,\r\n company\r\n ] = await Promise.all([\r\n VehicleSegmentsService.catalog(),\r\n VehicleBrandsService.catalog(),\r\n VehicleModelsService.catalog(),\r\n DriversService.catalog(),\r\n LocalsService.catalog(),\r\n CompaniesService.getCurrent()\r\n ]);\r\n setSegments(segmentsOptionsDB);\r\n setBrandsOptions(brands);\r\n setModelsOptions(models);\r\n setDriversOptions(drivers);\r\n setLocalsOptions(locals);\r\n setHasGps(company && company.trackingProvider !== TrackingProvider.NONE && hasGpsReadPolicy);\r\n }\r\n\r\n useEffect(() => {\r\n getData().then(\r\n () => {\r\n if (filters.brandId != undefined) {\r\n setInitialModels();\r\n }\r\n\r\n if (filters.modelId != undefined) {\r\n setInitialBrands();\r\n }\r\n }\r\n );\r\n }, []);\r\n\r\n const setInitialModels = async () => {\r\n const models = await VehicleModelsService.catalog({ brandId: getValues('brandId') } as CatalogModelsSearchCriteria);\r\n setModelsOptions(models);\r\n }\r\n\r\n const setInitialBrands = async () => {\r\n const brand = await VehicleBrandsService.catalog({ modelId: getValues('modelId') } as CatalogBrandsSearchCriteria);\r\n setBrandsOptions(brand);\r\n }\r\n\r\n const clearFilters = () => {\r\n reset({\r\n registrationNumber: undefined,\r\n registrationDate: undefined,\r\n segmentId: undefined,\r\n brandId: undefined,\r\n modelId: undefined,\r\n defaultDriverId: undefined,\r\n reservationAvailable: undefined,\r\n costAverage: undefined,\r\n costAccumulated: undefined,\r\n immobilized: undefined,\r\n localId: undefined,\r\n inactives: undefined\r\n });\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n const getVal = (arr: any[] | undefined, index: number): any | undefined => {\r\n return arr && arr.length > index ? arr[index] : undefined;\r\n }\r\n\r\n\r\n const getModelByBrand = async () => {\r\n try {\r\n const models = await VehicleModelsService.catalog({ brandId: getValues('brandId') } as CatalogModelsSearchCriteria);\r\n setModelsOptions(models);\r\n if (!getValues('modelId') && models.length == 1) {\r\n setValue('modelId', models.find(x => x.value)?.value);\r\n setValue('modelName', models.find(x => x.value)?.label);\r\n getBrandByModel();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get models of brand`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getBrandByModel = async () => {\r\n try {\r\n const brand = await VehicleBrandsService.catalog({ modelId: getValues('modelId') } as CatalogBrandsSearchCriteria);\r\n setBrandsOptions(brand);\r\n if (!getValues('brandId') && brand.length == 1) {\r\n setValue('brandId', brand.find(x => x.value)?.value);\r\n setValue('brandName', brand.find(x => x.value)?.label);\r\n getModelByBrand();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get brands of model`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('registrationNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('vehicle.registration_identification')}\r\n autoComplete='off'\r\n defaultValue={watch('registrationNumber')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('segmentName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={segmentsOptions.find(x => x.value === value) ? { label: segmentsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"segmentId\"\r\n defaultValue={getValues('segmentId')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('brandName', data?.label ?? null);\r\n getModelByBrand();\r\n onInputChange();\r\n }}\r\n value={brandsOptions.find(x => x.value === value) ? { label: brandsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"brandId\"\r\n defaultValue={getValues('brandId')} />\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('modelName', data?.label ?? null);\r\n getBrandByModel();\r\n onInputChange();\r\n }}\r\n value={modelsOptions.find(x => x.value === value) ? { label: modelsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"modelId\"\r\n defaultValue={getValues('modelId')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('localName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={localsOptions.find(x => x.value === value) ? { label: localsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"localId\"\r\n defaultValue={getValues('localId')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('defaultDriverName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={driversOptions.find(x => x.value === value) ? { label: driversOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"defaultDriverId\"\r\n defaultValue={getValues('defaultDriverId')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {hasGps && \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {hasCountersPolicy && \r\n \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue === 0 ? Number(endValue) : undefined);\r\n setValue('costAverage', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('costAverage'), 0)}\r\n defaultEndValue={getVal(getValues('costAverage'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n \r\n \r\n {\r\n const range = [];\r\n range.push(startValue || startValue === 0 ? Number(startValue) : undefined);\r\n range.push(endValue || endValue === 0 ? Number(endValue) : undefined);\r\n setValue('costAccumulated', range);\r\n onInputChange();\r\n }}\r\n defaultStartValue={getVal(getValues('costAccumulated'), 0)}\r\n defaultEndValue={getVal(getValues('costAccumulated'), 1)}\r\n groupSymbol={t('common.euro')}\r\n />\r\n \r\n \r\n {\r\n form.setValue('costsStartDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('costsEndDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('costsStartDate')}\r\n defaultEndValue={form.getValues('costsEndDate')}\r\n dateFormat=\"MM/yyyy\"\r\n isDatePicker\r\n showMonthYearPicker\r\n />\r\n \r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VehicleFiltersScreen);","import React, { useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DATE_FORMAT_DEFAUT, SEGMENT_FEATURES } from 'Config';\r\nimport Box from 'common/components/box/Box';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport Badge from 'common/components/badge/Badge';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport styles from './VehicleCard.module.scss';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport moment from 'moment';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\nimport AlertsCounter from 'common/components/alertsCounter/AlertsCounter';\r\nimport CurrentLocation from 'screens/vehicles-gps/components/currentLocation/CurrentLocation';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\n\r\ntype Props = {\r\n vehicle: VehicleViewModel,\r\n hasGpsPolicy?: boolean,\r\n hasCountersPolicy?: boolean,\r\n onCardPress: (event: any, id?: string, gps?: boolean) => void\r\n onHref: (row: any) => string;\r\n};\r\n\r\nconst VehicleCard: React.FC = ({ vehicle, hasGpsPolicy, hasCountersPolicy, onCardPress, onHref }: Props) => {\r\n const { t } = useTranslation();\r\n const imageCacheKey = useRef(new Date().getTime());\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasAlertsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_ALERTS_READ']);\r\n const vehicleImmobilizedTooltip = vehicle.predictedDateEndImmobilization\r\n ? `${t('vehicles.stopped_until')} ${moment(vehicle.predictedDateEndImmobilization).format(DATE_FORMAT_DEFAUT)}`\r\n : t('vehicles.no_date_end_immobilization');\r\n const vehicleLocals = vehicle.vehicleLocals?.map(x => x.localName);\r\n \r\n const showField = (feature: string) => {\r\n return (vehicle?.segmentFeatures?.findIndex(x => x === feature) ?? -1) >= 0;\r\n }\r\n\r\n const renderGpsInfo = () => {\r\n if (!hasGpsPolicy) {\r\n return null\r\n }\r\n\r\n if (vehicle.trackingDeviceId && !vehicle.gpsDataHydrated) {\r\n return \r\n }\r\n\r\n if (vehicle.trackingDeviceId && vehicle.gpsDataHydrated && !vehicle.latitude) {\r\n return
\r\n {t('location.info_messages.no_data')}\r\n
\r\n }\r\n\r\n if (vehicle.trackingDeviceId && vehicle.latitude && vehicle.longitude) {\r\n return
onCardPress(e, vehicle.id, true)} style={{ margin: '0.3rem 0' }}>\r\n \r\n
\r\n }\r\n\r\n return null\r\n }\r\n\r\n\r\n\r\n return onCardPress(e, vehicle.id)} bodyClassName={styles.cardContainerHeight}>\r\n
\r\n {\r\n hasAlertsReadPolicy && !!vehicle.totalAlerts && vehicle.totalAlerts > 0 &&\r\n \r\n }\r\n {/* href={onHref(vehicle)} */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n //ToDo - REMOVE FALSE TO SHOW DATES BADGE\r\n false && vehicle.useContractStartDate\r\n ?
\r\n \r\n - \r\n \r\n
\r\n :
 
\r\n }\r\n\r\n
{vehicle.registrationNumber} {!vehicle.active && }
\r\n
{(vehicle.vehicleBrandName ?? '') + (' ') + (vehicle.vehicleModelName ?? '')}
\r\n
{vehicle.vehicleSegmentName + ( vehicle.vehicleFuels?.length || vehicle.colorName ? ' | ' : '')}\r\n {(vehicle.vehicleFuels?.map((x, i) => (\r\n {t(('vehicle.fuels.' + x.fuelName) as any).toString()} \r\n )))}\r\n {vehicle.colorName ? ( t(('vehicle.colors.' + vehicle.colorName) as any)) : ''}\r\n
\r\n\r\n {renderGpsInfo()}\r\n\r\n
{vehicleLocals?.join(' | ')}
\r\n {vehicle.driverName &&
\r\n {vehicle.driverName}\r\n
}\r\n\r\n
\r\n {showField(SEGMENT_FEATURES.KM) &&
\r\n
\r\n \r\n {\r\n hasCountersPolicy &&\r\n \r\n }\r\n
\r\n
}\r\n
\r\n
\r\n
\r\n {vehicle.immobilized &&
\r\n
{t('vehicle.immobilized')}
\r\n
}\r\n
\r\n \r\n}\r\n\r\nexport default VehicleCard;\r\n","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport styles from './VehiclesScreen.module.scss';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport { DATE_FORMAT_MONTH_YEAR, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, POLICIES } from 'Config';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport VehicleFiltersScreen, { Filters } from './components/VehicleFiltersScreen';\r\nimport { VehiclesSearchCriteria } from 'api/vehicles/models/VehiclesSearchCriteria';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport VehicleCard from './components/vehicleCard/VehicleCard';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { Row, Col } from 'react-flexbox-grid';\r\nimport Loading from 'common/services/Loading';\r\nimport HelperModal from 'common/components/helperModal/HelperModal';\r\nimport InfoIcon from 'assets/svg/i_info_primaryDark.svg';\r\nimport ImportIcon from 'assets/svg/file-arrow-up-solid.svg';\r\nimport InfoTour from 'common/components/info-tour/InfoTour';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport TrackingVehicle from 'api/tracking/models/TrackingVehicle';\r\n\r\n\r\ntype VehiclesListTourItem = {\r\n selector: string;\r\n title: string;\r\n text: string;\r\n position?: string;\r\n policies: (keyof typeof POLICIES)[];\r\n type?: 'OR' | 'AND';\r\n};\r\n\r\n\r\nconst VehiclesScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const [trackingVehicles, setTrackingVehicles] = useState();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCountersPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['CHARGES_TOTAL_READ']);\r\n const hasVehiclesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_VEHICLES_WRITE']);\r\n const hasImportsWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_IMPORT_DATA_WRITE']);\r\n const hasGpsPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.registration_number',\r\n orderBy: 'asc'\r\n });\r\n const [vehicles, setVehicles] = useState([]);\r\n\r\n const [pageLoaded, setPageLoaded] = useState(false);\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n const [tourOpen, setTourOpen] = useState(false);\r\n const [companyHaveVehicles, setCompanyHaveVehicles] = useState(null);\r\n const validateItem = useCallback((item: VehiclesListTourItem) => {\r\n const type = item.type || 'AND';\r\n const policies = item.policies || [];\r\n const userPolicies = userProfile?.policies || [];\r\n return !policies.length || UsersService.hasPolicies(userPolicies, policies, type);\r\n }, [userProfile]);\r\n\r\n const steps: VehiclesListTourItem[] = useMemo(() => {\r\n const items: VehiclesListTourItem[] = [\r\n {\r\n selector: '#first-step',\r\n title: t('vehicles.tour.car_list'),\r\n text: t('vehicles.tour.car_list_message'),\r\n policies: [],\r\n },\r\n {\r\n selector: '#second-step',\r\n title: t('vehicles.tour.search_by_text'),\r\n text: t('vehicles.tour.search_by_text_message'),\r\n policies: [],\r\n },\r\n {\r\n selector: '#third-step',\r\n title: t('vehicles.tour.filters'),\r\n text: t('vehicles.tour.filters_message'),\r\n policies: [],\r\n position: 'top'\r\n },\r\n {\r\n selector: '#four-step',\r\n title: t('vehicles.tour.import'),\r\n text: t('vehicles.tour.import_message'),\r\n policies: ['SETTINGUP_IMPORT_DATA_WRITE'],\r\n type: 'OR',\r\n },\r\n {\r\n selector: '#five-step',\r\n title: t('vehicles.tour.new_car'),\r\n text: t('vehicles.tour.new_car_message'),\r\n policies: ['SETTINGUP_VEHICLES_WRITE'],\r\n type: 'OR',\r\n },\r\n ];\r\n\r\n return items.filter(item => validateItem(item));\r\n }, [userProfile, validateItem]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const result = await VehiclesService.companyHaveVehicles();\r\n setCompanyHaveVehicles(result);\r\n\r\n const vehiclesDB = await VehiclesService.getList(criteria);\r\n setTotalItems(vehiclesDB.totalItems);\r\n\r\n setVehicles(vehiclesDB.items);\r\n\r\n Loading.hide();\r\n if (hasGpsPolicy && vehiclesDB.items?.length) {\r\n const company = await CompaniesService.getCurrent();\r\n if (company && company.trackingProvider !== TrackingProvider.NONE) {\r\n try {\r\n const ids = vehiclesDB.items.filter(x => x.trackingDeviceId != null && x.id!= undefined).map(x => x.id as string) ?? [];\r\n if (ids.length) {\r\n const res = await TrackingService.getVehiclesList(ids);\r\n setTrackingVehicles(res);\r\n }\r\n } catch (err) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles tracking list`, err);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n }\r\n\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const navigateTo = (type?: string, id?: string, gps?: boolean) => {\r\n if (id) {\r\n history.push(`/vehicles/${type}/${id}` + (gps ? '/gps' : ''));\r\n\r\n } else {\r\n history.push(`/vehicles/${type}`);\r\n }\r\n }\r\n\r\n const onCardClick = (event: any, id?: string, gps?: boolean, locationUrl?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters); \r\n if (event.ctrlKey) {\r\n window.open(history.location.pathname + '/details/' + id + (gps ? '/gps' : ''), '_blank');\r\n return;\r\n }\r\n navigateTo('details', id, gps); \r\n }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('VEHICLESFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n setCriteria({ ...criteria, page });\r\n }\r\n\r\n useEffect(() => {\r\n setTrackingVehicles(null);\r\n if (pageLoaded) {\r\n getData();\r\n }\r\n else {\r\n setPageLoaded(true);\r\n loadFilters();\r\n }\r\n }, [criteria]);\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('VEHICLESFILTER');\r\n if (cachedFilters != null && !pageLoaded) {\r\n onChangeFilters(JSON.parse(cachedFilters), true)\r\n } else {\r\n getData()\r\n }\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n updateTotalFilters(f);\r\n criteria.registrationNumber = f.registrationNumber;\r\n criteria.registrationDate = f.registrationDate;\r\n criteria.segmentId = f.segmentId;\r\n criteria.brandId = f.brandId;\r\n criteria.modelId = f.modelId;\r\n criteria.defaultDriverId = f.defaultDriverId;\r\n criteria.reservationAvailable = f.reservationAvailable;\r\n criteria.hasGps = f.hasGps;\r\n criteria.minCost = f.costAverage && f.costAverage[0];\r\n criteria.maxCost = f.costAverage && f.costAverage[1];\r\n criteria.minCostTotal = f.costAccumulated && f.costAccumulated[0];\r\n criteria.maxCostTotal = f.costAccumulated && f.costAccumulated[1];\r\n criteria.driverId = f.driverId;\r\n criteria.costsStartDate = f.costsStartDate;\r\n criteria.costsEndDate = f.costsEndDate;\r\n criteria.immobilized = f.immobilized;\r\n criteria.localId = f.localId;\r\n criteria.inactives = f.inactives;\r\n criteria.allIn = f.allIn;\r\n criteria.tags = f.tags;\r\n criteria.page = !isOnLoad ? 1 : (f.page ?? 1);\r\n\r\n saveFiltersOnCache(f);\r\n setCriteria({ ...criteria });\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.registrationNumber) {\r\n total++;\r\n }\r\n if (f.registrationDate) {\r\n total++;\r\n }\r\n if (f.segmentId && f.segmentId.length > 0) {\r\n total++;\r\n }\r\n if (f.brandId && f.brandId.length > 0) {\r\n total++;\r\n }\r\n if (f.modelId && f.modelId.length > 0) {\r\n total++;\r\n }\r\n if (f.defaultDriverId && f.defaultDriverId.length > 0) {\r\n total++;\r\n }\r\n if (f.reservationAvailable || f.hasGps) {\r\n total++;\r\n }\r\n if (f.costAverage) {\r\n total++;\r\n }\r\n if (f.costAccumulated) {\r\n total++;\r\n }\r\n if (f.costsStartDate || f.costsEndDate) {\r\n total++;\r\n }\r\n if (f.immobilized || f.inactives) {\r\n total++;\r\n }\r\n if (f.localId && f.localId.length > 0) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const hydrateTracking = (v: VehicleViewModel) => {\r\n const trackingVehicle = trackingVehicles?.find(tv => tv.name === v.registrationNumber || tv.id === v.trackingDeviceId);\r\n if (trackingVehicle) {\r\n v.ignition = trackingVehicle.ignition;\r\n v.latitude = trackingVehicle.latitude;\r\n v.longitude = trackingVehicle.longitude;\r\n v.movement = trackingVehicle.movement;\r\n v.date = trackingVehicle.date;\r\n v.gpsDataHydrated = true;\r\n }\r\n else if (trackingVehicles || !hasGpsPolicy) {\r\n v.gpsDataHydrated = true;\r\n }\r\n return v;\r\n }\r\n\r\n const renderVehiclesCard = () => {\r\n return
\r\n {vehicles.map((v, i) => {\r\n const vehicle = hydrateTracking(v);\r\n return `/vehicles/details/${row.id}`}\r\n />\r\n })}\r\n
\r\n }\r\n\r\n const renderWithoutVehicles = () => {\r\n return companyHaveVehicles != false ?
\r\n {t('common.no_results')}\r\n
: renderStartUsingFleetMax();\r\n }\r\n\r\n const renderStartUsingFleetMax = () => {\r\n return
\r\n {t('common.start_using_fleetmax')} navigateTo('new')} className={styles.buttonAdd} />\r\n
\r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => { \r\n filters.allIn = value;\r\n saveFiltersOnCache(filters)\r\n setCriteria({ ...criteria, page: 1, allIn: value })\r\n }, 500);\r\n\r\n const debounced2 = useDebouncedCallback((value: string) => {\r\n filters.tags = value;\r\n saveFiltersOnCache(filters)\r\n setCriteria({ ...criteria, page: 1, tags: value })\r\n }, 500);\r\n\r\n const renderSearchInput = () => {\r\n return \r\n }\r\n\r\n const renderSearchTechnicalInfoInput = () => {\r\n return \r\n }\r\n\r\n const JumpToImport = () => {\r\n history.push(`/import-data`);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {renderSearchInput()}\r\n {renderSearchTechnicalInfoInput()}\r\n \r\n\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)} id=\"third-step\">\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n\r\n {hasImportsWritePolicy &&
JumpToImport()} />
}\r\n {hasVehiclesWritePolicy && navigateTo('new')} />}\r\n setTourOpen(true)} />\r\n
\r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.costsStartDate ? <>{t('common.range.from')} \r\n : filters.costsEndDate ? <>{t('common.range.to')} : undefined,\r\n label: t('vehicles.list.total_monthly_cost_date', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costsStartDate = filters.costsEndDate = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.registrationNumber,\r\n label: t('vehicle.registration_identification'),\r\n onRemove: () => { filters.registrationNumber = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.segmentName,\r\n label: t('vehicle.type'),\r\n onRemove: () => { filters.segmentId = filters.segmentName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.brandName,\r\n label: t('vehicle.brand'),\r\n onRemove: () => { filters.brandId = filters.brandName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.modelName,\r\n label: t('vehicle.model'),\r\n onRemove: () => { filters.modelId = filters.modelName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.reservationAvailable ? t('common.yes') : '',\r\n label: t('vehicle.available_for_reservation'),\r\n onRemove: () => { filters.reservationAvailable = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.hasGps ? t('common.yes') : '',\r\n label: t('vehicle.has_gps'),\r\n onRemove: () => { filters.hasGps = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.defaultDriverName,\r\n label: t('vehicle.default_driver'),\r\n onRemove: () => { filters.defaultDriverId = filters.defaultDriverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.driverName,\r\n label: t('common.state'),\r\n onRemove: () => { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.costAverage || !filters.costAverage.length || !filters.costAverage.find(x => x !== undefined) ? undefined :\r\n filters.costAverage.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.costAverage[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('vehicles.list.average_monthly_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costAverage = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: !filters.costAccumulated || !filters.costAccumulated.length || !filters.costAccumulated.find(x => x !== undefined) ? undefined :\r\n filters.costAccumulated.filter(i => i !== undefined).length === 2 ? <>{t('common.between')} {t('common.and')} \r\n : filters.costAccumulated[0] !== undefined ? <>{t('common.above')} \r\n : <>{t('common.below')} ,\r\n label: t('vehicles.list.total_monthly_cost', { vat: (userProfile?.useValueWithVat ? t('common.with_vat') : t('common.without_vat')) }),\r\n onRemove: () => { filters.costAccumulated = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.immobilized ? t('common.yes') : '',\r\n label: t('vehicle.immobilized'),\r\n onRemove: () => { filters.immobilized = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.localName,\r\n label: t('vehicle.local'),\r\n onRemove: () => { filters.localId = filters.localName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.inactives ? t('common.yes') : '',\r\n label: t('vehicle.inactives'),\r\n onRemove: () => { filters.inactives = false; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n
\r\n \r\n {!!vehicles.length ? renderVehiclesCard() : renderWithoutVehicles()}\r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n return {\r\n selector: x.selector,\r\n content: ,\r\n position: x.position\r\n }\r\n })}\r\n isOpen={tourOpen}\r\n onRequestClose={() => setTourOpen(false)}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default VehiclesScreen;\r\n","import { Paged } from 'api/common/types/Page';\r\nimport Http from '../../common/services/Http';\r\nimport { VehicleReservationDto } from './models/VehicleReservationDto';\r\nimport { VehicleReservationsSearchCriteria } from './models/VehicleReservationsSearchCriteria'\r\nimport { ReservationsVehicleListItemDto } from '../vehicles/models/ReservationsVehicleListItemDto'\r\n\r\nclass VehicleReservationsService {\r\n\r\n public getById(id: string) {\r\n return Http.get('vehicleReservations/' + id);\r\n }\r\n\r\n\r\n public getVehicles(criteria: VehicleReservationsSearchCriteria) {\r\n return Http.get>('vehicleReservations/getVehicles', criteria);\r\n }\r\n\r\n public getListByVehicleId(criteria: VehicleReservationsSearchCriteria) {\r\n return Http.get>('vehicleReservations', criteria);\r\n }\r\n\r\n public validateDates(criteria: VehicleReservationsSearchCriteria) {\r\n return Http.get('vehicleReservations/validateDates', criteria);\r\n }\r\n\r\n public create(model: VehicleReservationDto) {\r\n return Http.post('vehicleReservations', model);\r\n }\r\n\r\n public update(model: VehicleReservationDto) {\r\n return Http.put('vehicleReservations', model);\r\n }\r\n\r\n public remove(model: VehicleReservationDto) {\r\n return Http.put('vehicleReservations/deactivate', model);\r\n }\r\n}\r\n\r\nexport default new VehicleReservationsService();","import React, { useRef, useState } from 'react';\r\nimport Timekeeper from 'react-timekeeper';\r\nimport { FaRegClock } from 'react-icons/fa';\r\nimport styles from './DateWithHour.module.scss';\r\nimport DateTimePicker from '../dateTimePicker/DateTimePicker';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport { DATE_FORMAT_DEFAUT } from 'Config';\r\nimport moment from 'moment';\r\nimport { Controller, RegisterOptions } from 'react-hook-form';\r\nimport dayjs from 'dayjs';\r\n\r\nconst resetTime = (value: Date) => {\r\n return dayjs(value)\r\n .set('hour', 0)\r\n .set('minute', 0)\r\n .set('second', 0)\r\n .set('millisecond', 0);\r\n}\r\n\r\n\r\nconst formatTimeNumber = (n: number) => {\r\n return n.toLocaleString('en-US', {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false\r\n });\r\n}\r\n\r\ntype Props = {\r\n form: any;\r\n datePlaceholder?: string;\r\n dateFormat: string;\r\n dateCustomInput: JSX.Element;\r\n isDisabled: boolean;\r\n name: string;\r\n minDate?: Date | undefined;\r\n timePlaceholder?: string;\r\n className?: string;\r\n rules?: Exclude;\r\n onChangeDate?: (date: Date) => void;\r\n};\r\n\r\nconst DateWithHourController = ({ form, datePlaceholder, dateFormat, dateCustomInput, timePlaceholder, isDisabled, className, minDate, rules, name, onChangeDate }: Props) => {\r\n\r\n const [showTime, setShowTime] = useState(false);\r\n const ref = useRef(null);\r\n\r\n return (\r\n {\r\n const timeInput = {\r\n hour: value ? dayjs(value).get('hours') : 0,\r\n minute: value ? dayjs(value).get('minutes') : 0\r\n };\r\n return (\r\n
\r\n
\r\n {\r\n const d = date as Date;\r\n let newDate: Date;\r\n\r\n if (minDate && (d.toLocaleDateString() == minDate?.toLocaleDateString())) {\r\n newDate = dayjs(minDate)\r\n .set('date', d.getDate())\r\n .set('month', d.getMonth())\r\n .set('year', d.getFullYear())\r\n .toDate();\r\n\r\n } else {\r\n newDate = dayjs(value || resetTime(new Date()))\r\n .set('date', d.getDate())\r\n .set('month', d.getMonth())\r\n .set('year', d.getFullYear())\r\n .toDate();\r\n }\r\n\r\n onChangeCtrl(newDate);\r\n if (onChangeDate) {\r\n onChangeDate(newDate)\r\n }\r\n }}\r\n value={value ? moment(value).format(dateFormat ?? DATE_FORMAT_DEFAUT) : undefined}\r\n />\r\n
\r\n
\r\n {showTime &&\r\n
\r\n {\r\n setShowTime(false);\r\n\r\n if (!hour || !hour.formatted24) {\r\n onChangeCtrl(resetTime(value));\r\n } else {\r\n const time = hour.formatted24.split(':');\r\n\r\n const newDate = dayjs(value || resetTime(new Date()))\r\n .set('hour', Number(time[0]))\r\n .set('minute', Number(time[1]))\r\n .toDate();\r\n\r\n onChangeCtrl(newDate);\r\n if (onChangeDate) {\r\n onChangeDate(newDate)\r\n }\r\n }\r\n }}\r\n />\r\n
\r\n }\r\n {!showTime &&\r\n setShowTime(true)}\r\n removeInputBorderRadius={true}\r\n isClearable={false}\r\n disabled={isDisabled || !value}\r\n icon={}\r\n />\r\n }\r\n
\r\n
\r\n );\r\n }}\r\n onFocus={() => (ref.current as any).input.focus()}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || undefined}\r\n rules={rules}\r\n />\r\n );\r\n};\r\n\r\nexport default DateWithHourController;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ReservationFormScreen.module.scss';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { VehicleReservationViewModel } from 'api/vehicleReservations/models/VehicleReservationViewModel';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport DriversService from 'api/drivers/DriversService';\r\nimport { useForm } from 'react-hook-form';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Label from 'common/components/label/Label';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport { FaCalendarAlt, FaExclamationTriangle } from 'react-icons/fa';\r\nimport Button from 'common/components/button/Button';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport InputController from 'common/components/input/InputController';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport Loading from 'common/services/Loading';\r\nimport VehicleReservationsService from 'api/vehicleReservations/VehicleReservationsService';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport DateWithHourController from 'common/components/dateWithHour/DateWithHourController';\r\nimport { ReservationsVehicleListItemDto } from 'api/vehicles/models/ReservationsVehicleListItemDto';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport moment from 'moment';\r\n\r\ntype Props = {\r\n vehicle?: ReservationsVehicleListItemDto;\r\n reservation?: VehicleReservationViewModel;\r\n mode?: string;\r\n onCancel: () => void;\r\n onSave?: () => void;\r\n\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ReservationFormScreen: React.FC = ({ vehicle, reservation, mode, onCancel, onSave }: Props) => {\r\n\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { setValue, errors } = form;\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n\r\n const [validDate, setValidDate] = useState(true);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n\r\n let isOwner = reservation ? reservation.userCreatedId === userProfile?.id : true;\r\n const canWrite = UsersService.hasPolicies(userProfile?.policies ?? [], ['SETTINGUP_RESERVATIONS_WRITE'], 'OR');\r\n const canEdit =\r\n UsersService.hasPolicies(userProfile?.policies ?? [], ['SETTINGUP_RESERVATIONS_EDIT_ALL'], 'OR') || isOwner;\r\n const [isDetails, setIsDetails] = useState(mode == 'details' || !canWrite || !canEdit);\r\n const [reservationState, setReservationState] = useState();\r\n\r\n const getData = async () => {\r\n try {\r\n const drivers = await DriversService.catalog();\r\n\r\n setDriversOptions(drivers);\r\n\r\n if (reservation) {\r\n setReservationState(reservation);\r\n validateDate(reservation.startDate, reservation.endDate);\r\n form.reset(reservation);\r\n form.setValue('startDate', moment(reservation.startDate).toDate())\r\n form.setValue('endDate', moment(reservation.endDate).toDate())\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get drivers`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const validateDate = async (startDate?: Date, endDate?: Date) => {\r\n const criteria = {\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n vehicleId: vehicle?.id,\r\n id: reservationState?.id ?? reservation?.id\r\n }\r\n\r\n if (startDate || endDate) {\r\n let result = await VehicleReservationsService.validateDates({ ...criteria, startDate: startDate, endDate: endDate });\r\n \r\n if (startDate && endDate) {\r\n result = result && startDate <= endDate;\r\n }\r\n\r\n setValidDate(result);\r\n }\r\n }\r\n\r\n const onSubmit = async (r: VehicleReservationViewModel) => {\r\n if (!validDate) {\r\n addToast(t('reservations.unavailable_dates'), { appearance: 'warning' });\r\n return;\r\n }\r\n\r\n try {\r\n Loading.show();\r\n\r\n if (r.id) {\r\n await VehicleReservationsService.update({ ...r, vehicleId: vehicle?.id });\r\n } else {\r\n const idNewReservation = await VehicleReservationsService.create({ ...r, vehicleId: vehicle?.id });\r\n const reservationDB = await VehicleReservationsService.getById(idNewReservation);\r\n isOwner = reservationDB ? reservationDB.userCreatedId === userProfile?.id : true;\r\n setReservationState(reservationDB);\r\n if (reservationDB) {\r\n form.reset(reservationDB);\r\n form.setValue('startDate', moment(reservationDB.startDate).toDate())\r\n form.setValue('endDate', moment(reservationDB.endDate).toDate())\r\n }\r\n }\r\n\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n\r\n setIsDetails(true);\r\n\r\n if (onSave) {\r\n onSave();\r\n }\r\n\r\n } catch (error) {\r\n Loading.hide();\r\n\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update vehicle registration`, error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{vehicle?.vehicleRegistrationNumber}
\r\n
\r\n {vehicle?.vehicleBrandName}\r\n {vehicle?.vehicleModelName &&\r\n <> {(' | ')}\r\n {vehicle.vehicleModelName}\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"startDate\"\r\n onChangeDate={() => validateDate(form.getValues('startDate'), form.getValues('endDate'))}\r\n rules={{ required: true }}\r\n isDisabled={isDetails}\r\n timePlaceholder={t('common.hour')}\r\n />\r\n \r\n {!validDate &&
{t('reservations.unavailable_dates')}
}\r\n
\r\n \r\n \r\n \r\n \r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"endDate\"\r\n onChangeDate={() => validateDate(form.getValues('startDate'), form.getValues('endDate'))}\r\n rules={{ required: true }}\r\n isDisabled={isDetails}\r\n timePlaceholder={t('common.hour')}\r\n minDate={form.watch('startDate') ?? reservationState?.startDate}\r\n />\r\n \r\n {!validDate && form.watch('endDate') &&
{t('reservations.unavailable_dates')}
}\r\n
\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('driverId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n onCancel()}\r\n />\r\n\r\n {!isDetails &&\r\n < Button\r\n type='submit'\r\n text={t('reservations.reserve')}\r\n size={'normal'}\r\n />\r\n }\r\n {isDetails && (canEdit) &&\r\n < Button\r\n text={t('common.edit')}\r\n size={'normal'}\r\n onClick={() => setIsDetails(false)}\r\n />\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ReservationFormScreen;","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ReservationFilters.module.scss';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { DATE_FORMAT_DEFAUT, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport Button from 'common/components/button/Button';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { useForm } from 'react-hook-form';\r\nimport VehicleBrandsService from 'api/vehicleBrands/VehicleBrandsService';\r\nimport VehicleModelsService from 'api/vehicleModels/VehicleModelsService';\r\nimport Input from 'common/components/input/Input';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport { CatalogModelsSearchCriteria } from 'api/catalog/models/CatalogModelsSearchCriteria';\r\nimport { CatalogBrandsSearchCriteria } from 'api/catalog/models/CatalogBrandsSearchCriteria';\r\nimport DateWithHourController from 'common/components/dateWithHour/DateWithHourController';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\n\r\nexport interface Filters {\r\n vehicleBrandId?: string | null,\r\n vehicleModelId?: string | null,\r\n vehicleSegmentId?: string | null,\r\n vehicleRegistrationNumber?: string | null,\r\n reservationStartDate?: Date | null,\r\n reservationEndDate?: Date | null,\r\n page?: number,\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onFilter: (filters: Filters) => void;\r\n load?: boolean;\r\n}\r\n\r\nconst ReservationFilters: React.FC = ({ filters, onFilter, load }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch } = form;\r\n const [brandsOptions, setBrandsOptions] = useState([]);\r\n const [modelsOptions, setModelsOptions] = useState([]);\r\n const [segmentsOptions, setSegmentsOptions] = useState([]);\r\n\r\n useEffect(() => {\r\n if (load) {\r\n form.reset(filters);\r\n onSubmit(filters);\r\n } else {\r\n form.reset(filters);\r\n }\r\n }, [filters]);\r\n\r\n const getData = async () => {\r\n try {\r\n const [\r\n brands,\r\n models,\r\n segments\r\n ] = await Promise.all([\r\n VehicleBrandsService.catalog(),\r\n VehicleModelsService.catalog(),\r\n VehicleSegmentsService.catalog()\r\n ]);\r\n\r\n setBrandsOptions(brands);\r\n setModelsOptions(models);\r\n setSegmentsOptions(segments);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get data`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getModelByBrand = async () => {\r\n try {\r\n const modelsList = await VehicleModelsService.catalog({ brandId: getValues('vehicleBrandId') } as CatalogModelsSearchCriteria);\r\n setModelsOptions(modelsList);\r\n\r\n if (!getValues('vehicleModelId') && modelsList.length == 1) {\r\n setValue('vehicleModelId', modelsList.find(x => x.value)?.value);\r\n getBrandByModel();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get models of brand`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const getBrandByModel = async () => {\r\n try {\r\n const brandsList = await VehicleBrandsService.catalog({ modelId: getValues('vehicleModelId') } as CatalogBrandsSearchCriteria);\r\n setBrandsOptions(brandsList);\r\n\r\n if (!getValues('vehicleBrandId') && brandsList.length == 1) {\r\n setValue('vehicleBrandId', brandsList.find(x => x.value)?.value);\r\n getModelByBrand();\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get brands of model`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n const model = {\r\n vehicleBrandId: null,\r\n vehicleModelId: null,\r\n vehicleSegmentId: null,\r\n vehicleRegistrationNumber: null,\r\n reservationStartDate: null,\r\n reservationEndDate: null,\r\n };\r\n reset(model);\r\n onSubmit(model);\r\n getData();\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleBrandId', data ? data.value : null);\r\n getModelByBrand();\r\n getValues();\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleModelId', data ? data.value : null);\r\n getBrandByModel();\r\n getValues();\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('vehicleSegmentId', data ? data.value : null);\r\n getValues();\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n setValue('vehicleRegistrationNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n getValues();\r\n }}\r\n placeholder={t('reservations.registration_number')}\r\n autoComplete='off'\r\n defaultValue={watch('vehicleRegistrationNumber') || undefined} />\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"reservationStartDate\"\r\n isDisabled={false}\r\n timePlaceholder={t('common.hour')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"reservationEndDate\"\r\n isDisabled={false}\r\n timePlaceholder={t('common.hour')}\r\n minDate={form.watch('reservationStartDate') || undefined}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default memo(ReservationFilters);","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ReservationScreen.module.scss';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport Box from 'common/components/box/Box';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport { VehicleReservationViewModel } from 'api/vehicleReservations/models/VehicleReservationViewModel';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport Logger from 'common/services/Logger';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport { FaEllipsisV, FaInfoCircle } from 'react-icons/fa';\r\nimport Button from 'common/components/button/Button';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ReservationFormScreen from './components/form/ReservationFormScreen';\r\nimport VehicleReservationsService from 'api/vehicleReservations/VehicleReservationsService';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport ReservationFilters, { Filters } from './components/filters/ReservationFilters';\r\nimport { VehicleReservationsSearchCriteria } from 'api/vehicleReservations/models/VehicleReservationsSearchCriteria';\r\nimport { VehicleReservationDto } from 'api/vehicleReservations/models/VehicleReservationDto';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport Loading from 'common/services/Loading';\r\nimport { useParams } from 'react-router-dom';\r\nimport { ReservationsVehicleListItemDto } from 'api/vehicles/models/ReservationsVehicleListItemDto';\r\nimport dayjs from 'dayjs';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\n\r\nconst itemsPerPage = DEFAULT_PAGINATION_ITEMS_PER_PAGE;\r\n\r\nconst ReservationScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const { itemId, type } = useParams<{ itemId: string, type: string }>();\r\n const [isSearch, search] = useState(type === 'search');\r\n\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [totalItems, setTotalItems] = useState(0);\r\n\r\n const [vehicles, setVehicles] = useState([]);\r\n\r\n const [openRows, setOpenRows] = useState([]);\r\n const [openReservationDetailsPopover, setOpenReservationDetailsPopover] = useState(null);\r\n const [openReservationEditPopover, setOpenReservationEditPopover] = useState(null);\r\n\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [parentItemToRemove, setParentItemToRemove] = useState(null);\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1\r\n });\r\n\r\n const [filters, setFilters] = useState({});\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const canWrite = UsersService.hasPolicies(userProfile?.policies ?? [], ['SETTINGUP_RESERVATIONS_WRITE'], 'OR');\r\n const canEditAll = UsersService.hasPolicies(userProfile?.policies ?? [], ['SETTINGUP_RESERVATIONS_EDIT_ALL'], 'OR');\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('RESERVATIONSFILTER');\r\n if(cachedFilters != null){onChangeFilters(JSON.parse(cachedFilters),true)}\r\n else{getData()}\r\n }\r\n \r\n const saveFiltersOnCache = (f:Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('RESERVATIONSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onChangeFilters = (f: Filters,isOnLoad?:boolean) => {\r\n\r\n criteria.registrationNumber= f.vehicleRegistrationNumber;\r\n criteria.brandId= f.vehicleBrandId;\r\n criteria.modelId= f.vehicleModelId;\r\n criteria.segmentId= f.vehicleSegmentId;\r\n criteria.startDate= f.reservationStartDate;\r\n criteria.endDate= f.reservationEndDate;\r\n\r\n if(isOnLoad && f.page){\r\n setCurrentPage(f.page);\r\n criteria.page = f.page\r\n }else{\r\n criteria.page = 1;\r\n f.page = 1;\r\n setCurrentPage(1);\r\n }\r\n saveFiltersOnCache(f);\r\n \r\n setOpenRows([]);\r\n getData();\r\n }\r\n\r\n \r\n useEffect(() => {\r\n loadFilters();\r\n }, []); //criteria\r\n\r\n useEffect(() => {\r\n setReservationFilters();\r\n }, [search]);\r\n\r\n const setReservationFilters = async () => {\r\n if (itemId && type === 'search') {\r\n const reservation = await VehicleReservationsService.getById(itemId);\r\n setFilters({\r\n vehicleRegistrationNumber: reservation.vehicleRegistrationNumber,\r\n reservationStartDate: reservation.startDate,\r\n reservationEndDate: reservation.endDate\r\n });\r\n }\r\n }\r\n\r\n const getData = async () => {\r\n Loading.show();\r\n\r\n try {\r\n criteria.page = currentPage;\r\n\r\n const vehiclesDB = await VehicleReservationsService.getVehicles(criteria);\r\n\r\n setCurrentPage(vehiclesDB.currentPage);\r\n setTotalItems(vehiclesDB.totalItems);\r\n setVehicles(vehiclesDB.items);\r\n\r\n if (type === 'search' && vehiclesDB.totalItems === 1) {\r\n toggleRowOpen(vehiclesDB.items[0], true);\r\n }\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const getReservations = async (vehicle: ReservationsVehicleListItemDto, page: number) => {\r\n if (vehicle.id) {\r\n\r\n Loading.show();\r\n try {\r\n const reservationsCriteria = {\r\n itemsPerPage,\r\n page,\r\n orderBy: 'desc',\r\n orderColumn: 'vr.start_date',\r\n vehicleId: vehicle.id,\r\n registrationNumber: criteria.registrationNumber,\r\n brandId: criteria.brandId,\r\n modelId: criteria.modelId,\r\n segmentId: criteria.segmentId,\r\n startDate: criteria.startDate,\r\n endDate: criteria.endDate,\r\n };\r\n\r\n const reservationsList = await VehicleReservationsService.getListByVehicleId(reservationsCriteria);\r\n\r\n setVehicles(vv => {\r\n const tempVehicles = vv.map(v => {\r\n if (v.id === vehicle.id) {\r\n const reservations = page > 1 ? (v.reservations || []) : [];\r\n\r\n return {\r\n ...v,\r\n reservations: [...reservations, ...reservationsList.items],\r\n reservationsReachedEnd: (reservationsList.totalPages == 0 || reservationsList.currentPage == reservationsList.totalPages) ? true : false,\r\n };\r\n }\r\n return v;\r\n });\r\n return tempVehicles;\r\n });\r\n\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get reservations list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n\r\n Loading.hide();\r\n }\r\n }\r\n };\r\n\r\n const toggleRowOpen = (row: ReservationsVehicleListItemDto, forceOpen = false) => {\r\n if (!row.id) {\r\n return;\r\n }\r\n\r\n if (openRows.find(id => id === row.id) && !forceOpen) {\r\n setOpenRows(openRows.filter(id => id !== row.id));\r\n } else {\r\n if (!row.reservations || forceOpen) {\r\n getReservations(row, 1);\r\n }\r\n setOpenRows([...openRows, row.id]);\r\n }\r\n }\r\n\r\n const onRowClick = (row: ReservationsVehicleListItemDto) => {\r\n toggleRowOpen(row);\r\n }\r\n\r\n const onSubRowsLoadMore = (row: ReservationsVehicleListItemDto) => {\r\n const totalPages = Math.ceil((row.reservations || []).length / itemsPerPage);\r\n getReservations(row, totalPages + 1);\r\n }\r\n\r\n const canSubRowsLoadMore = (row: ReservationsVehicleListItemDto): boolean => {\r\n return !row.reservationsReachedEnd;\r\n }\r\n\r\n const isRowExpanded = (row: ReservationsVehicleListItemDto) => {\r\n return Boolean(openRows.find(id => id === row.id));\r\n }\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await VehicleReservationsService.remove(itemToRemove);\r\n onCancelRemove();\r\n\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n\r\n if (parentItemToRemove) {\r\n getReservations(parentItemToRemove, 1);\r\n }\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete reservation`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const showRemoveItemDialog = async (item: VehicleReservationDto, parent?: ReservationsVehicleListItemDto) => {\r\n setItemToRemove(item);\r\n if (parent) {\r\n setParentItemToRemove(parent);\r\n }\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onPageChange = (page: number) => {\r\n setCurrentPage(page);\r\n filters.page = page;\r\n \r\n saveFiltersOnCache(filters);\r\n getData();\r\n }\r\n\r\n // render cells\r\n const renderVehicleCell = (row: ReservationsVehicleListItemDto) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{row.vehicleRegistrationNumber}
\r\n
{(row.vehicleBrandName ?? '') + (row.vehicleBrandName && row.vehicleModelName ? ' | ' : '') + (row.vehicleModelName ?? '')}
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderDateCell = (row: VehicleReservationViewModel) => {\r\n return (\r\n
\r\n
\r\n {row && row.startDate ?\r\n \r\n {t('reservations.list.date_start')}: \r\n \r\n : '-'}\r\n\r\n {row && row.startDate && {new Date(row.startDate).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}}\r\n
\r\n
\r\n {row && row.endDate ?\r\n \r\n {t('reservations.list.date_end')}: \r\n \r\n : '-'}\r\n\r\n {row && row.endDate && {new Date(row.endDate).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} }\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderDriverCell = (row: VehicleReservationViewModel) => {\r\n return (\r\n
\r\n
\r\n
{row.driverName || '-'}
\r\n
\r\n
{row.driverEmail}
\r\n
\r\n )\r\n }\r\n\r\n const renderActionsCell = (row: VehicleReservationViewModel, _: any, index: number, parentRow?: ReservationsVehicleListItemDto) => {\r\n const elem = document.getElementById('root');\r\n const isOwner = row ? row.userCreatedId === userProfile?.id : true;\r\n const canEdit = canEditAll || (canWrite && isOwner);\r\n\r\n return (\r\n <>\r\n setOpenReservationDetailsPopover(v ? row.id! : null)}\r\n content={setIsPopoverOpen =>\r\n {\r\n setIsPopoverOpen(false);\r\n }}\r\n onSave={() => {\r\n if (parentRow) {\r\n toggleRowOpen(parentRow, true);\r\n }\r\n }}\r\n />\r\n } />\r\n\r\n setOpenReservationEditPopover(v ? row.id! : null)}\r\n content={setIsPopoverOpen =>\r\n {\r\n setIsPopoverOpen(false);\r\n }}\r\n onSave={() => {\r\n if (parentRow) {\r\n toggleRowOpen(parentRow, true);\r\n }\r\n }}\r\n />\r\n } />\r\n\r\n
\r\n \r\n setOpenReservationDetailsPopover(row.id!)}>\r\n {t('common.details')}\r\n \r\n\r\n {canEdit && setOpenReservationEditPopover(v ? row.id! : null)}>\r\n {t('common.edit')}\r\n }\r\n\r\n {canEdit && showRemoveItemDialog(row, parentRow)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n const renderButtonCell = (row: ReservationsVehicleListItemDto, column: any, index: number) => {\r\n const elem = document.getElementById('root');\r\n const canEdit = canEditAll || canWrite;\r\n\r\n if(canEdit)\r\n {\r\n return (\r\n \r\n {\r\n setIsPopoverOpen(false);\r\n }}\r\n onSave={() => {\r\n setIsPopoverOpen(true);\r\n toggleRowOpen(row, true);\r\n }}\r\n />\r\n }>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)} />\r\n )}\r\n \r\n );\r\n }\r\n else \r\n {\r\n return (<>);\r\n }\r\n \r\n };\r\n\r\n const formateDate = (date: Date) => {\r\n const d = dayjs(date);\r\n const now = dayjs();\r\n\r\n let result = d.format('D MMMM');\r\n if (d.get('year') !== now.get('year')) {\r\n result += ` ${d.format('yyyy')}`;\r\n }\r\n\r\n result += ` ${t('reservations.list.at')} ${d.format('H')}`;\r\n\r\n if (d.get('minute') > 0) {\r\n result += `:${d.format('mm')}`;\r\n }\r\n\r\n result += 'h';\r\n\r\n return result;\r\n }\r\n\r\n const renderAvailability = (row: ReservationsVehicleListItemDto) => (\r\n
\r\n {row.availability && t('reservations.list.available')}\r\n {!row.availability && row.availabilities && row.availabilities.length === 0 && t('reservations.list.not_available')}\r\n {!row.availability && row.availabilities && row.availabilities.length > 0 && row.availabilities.map((a, i) => (\r\n {\r\n a.endDate\r\n ? t('reservations.list.available_between', { dateFrom: formateDate(new Date(a.startDate)), dateTo: formateDate(new Date(a.endDate)) })\r\n : t('reservations.list.available_from', { date: formateDate(new Date(a.startDate)) })\r\n } {row.availabilities && i < row.availabilities.length - 1 ? ', ' : ''}\r\n \r\n ))}\r\n
\r\n );\r\n // end render cells\r\n\r\n // Table rows\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n name: t('reservations.list.vehicle'),\r\n renderCell: renderVehicleCell,\r\n width: 500,\r\n },\r\n {\r\n name: t('reservations.list.driver'),\r\n width: 600,\r\n hideOn: ['sm']\r\n },\r\n {\r\n name: t('reservations.list.reason'),\r\n width: 600,\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name:\r\n
\r\n {t('reservations.list.availability')}\r\n \r\n \r\n \r\n
,\r\n renderCell: renderAvailability,\r\n hideOn: ['sm', 'md', 'lg'],\r\n width: 300,\r\n },\r\n {\r\n renderCell: renderButtonCell,\r\n preventClick: true,\r\n width: 100,\r\n }\r\n ];\r\n\r\n // Table sub rows\r\n const tableSubColumns: ListingTableColumn[] = [\r\n {\r\n name: t('reservations.list.vehicle'),\r\n renderCell: renderDateCell,\r\n width: 500,\r\n },\r\n {\r\n name: t('reservations.list.driver'),\r\n renderCell: renderDriverCell,\r\n width: 600,\r\n hideOn: ['sm']\r\n },\r\n {\r\n name: t('reservations.list.reason'),\r\n renderCell: row =>\r\n
\r\n {row.reason}\r\n
,\r\n width: 600,\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n width: 300\r\n },\r\n {\r\n renderCell: renderActionsCell,\r\n width: 100,\r\n preventClick: true,\r\n cellStyle: { overflow: 'unset' },\r\n cellAlignment: 'right',\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n
\r\n { onChangeFilters(f) }}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {t('reservations.only_show_vehicles_available_for_reservation')}\r\n
\r\n\r\n row.reservations || []}\r\n onRowClick={onRowClick}\r\n isExpanded={isRowExpanded}\r\n allowHover={true}\r\n allowSubRowHover={false}\r\n colorSubRow={colors.alabaster}\r\n hasSubRows={true}\r\n onSubRowsLoadMore={onSubRowsLoadMore}\r\n canSubRowsLoadMore={canSubRowsLoadMore}\r\n labelSubRowWithoutResults={t('reservations.without_reservations')}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ReservationScreen;","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Loading from 'common/services/Loading';\r\nimport DashboardDto from 'api/dashboard/dtos/DashboardDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { FiltersFormModel, TimePeriod, timePeriodToDates } from './filters/FiltersView';\r\nimport DashboardService from 'api/dashboard/DashboardService';\r\nimport { DATE_FORMAT_DEFAUT, LOGGER_LOG_TYPE } from 'Config';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport FiltersButton from './filters/FiltersButton';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport CoinsIcon from 'assets/svg/coins.svg';\r\nimport MediaIcon from 'assets/svg/media.svg';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport styles from './DashboardScreen.module.scss';\r\nimport { Grid, Row } from 'react-flexbox-grid';\r\nimport ChartsBoxes from './chartsBoxes/ChartsBoxes';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { useSelector } from 'react-redux';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport { Reducers } from 'store/types';\r\nimport moment from 'moment';\r\nimport dayjs from 'dayjs';\r\nimport { CountersDashboardDto } from 'api/dashboard/dtos/CountersDashboardDto';\r\nimport { ExpensesDashboardDto } from 'api/dashboard/dtos/ExpensesDashboardDto';\r\nimport { ConsumesDashboardDto } from 'api/dashboard/dtos/ConsumesDashboardDto';\r\nimport { MonthlyCostDashboardDto } from 'api/dashboard/dtos/MonthlyCostDashboardDto';\r\nimport { NextMaintenancesDashboardDto } from 'api/dashboard/dtos/NextMaintenancesDashboardDto';\r\nimport { MonthlyRoutesDashboardDto } from 'api/dashboard/dtos/MonthlyRouteDashboardDto';\r\n\r\n\r\nconst defaultTimePeriod = TimePeriod.CURRENT_MONTH;\r\nconst [defaultDateFrom, defaultDateTo] = timePeriodToDates(defaultTimePeriod);\r\n\r\nconst DashboardScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [data, setData] = useState(null);\r\n const [vehicles, setVehicles] = useState([]);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const [counters, setCounters] = useState(null);\r\n const [expenses, setExpenses] = useState(null);\r\n const [consumes, setConsumes] = useState(null);\r\n const [nextMaintenances, setNextMaintenances] = useState(null);\r\n const [monthlyCost, setMonthlyCost] = useState(null);\r\n const [monthlyRoute, setMonthlyRoutes] = useState(null);\r\n const [refresh, setRefresh] = useState(1);\r\n const [filters, setFilters] = useState({\r\n dateFrom: defaultDateFrom,\r\n dateTo: defaultDateTo,\r\n vehicleId: null,\r\n timePeriod: defaultTimePeriod,\r\n inactives: true\r\n });\r\n\r\n const [isLoadingCounters, setIsLoadingCounters] = useState(false);\r\n const [isLoadingExpenses, setIsLoadingExpenses] = useState(false);\r\n const [isLoadingConsumes, setIsLoadingConsumes] = useState(false);\r\n const [isLoadingNextMaintenances, setIsLoadingNextMaintenances] = useState(false);\r\n const [isLoadingMonthlyCost, setIsLoadingMonthlyCost] = useState(false);\r\n const [isLoadingMonthlyRoute, setIsLoadingMonthlyRoute] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const criteria = {\r\n ...filters,\r\n dateTo: filters.dateTo ? dayjs(filters.dateTo).endOf('month').toDate() : filters.dateTo,\r\n }\r\n const [vehiclesList] = await Promise.all([\r\n VehiclesService.catalogWithDeleted()\r\n ]);\r\n setVehicles(vehiclesList);\r\n\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const getCounters = async () => {\r\n try {\r\n setIsLoadingCounters(true);\r\n const dashboardData = await DashboardService.getCounters({ ...filters });\r\n setCounters(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingCounters(false);\r\n }\r\n };\r\n\r\n const getExpenses = async () => {\r\n try {\r\n setIsLoadingExpenses(true);\r\n const dashboardData = await DashboardService.getExpenses({ ...filters });\r\n setExpenses(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingExpenses(false);\r\n }\r\n };\r\n\r\n const getConsumes = async () => {\r\n try {\r\n setIsLoadingConsumes(true);\r\n const dashboardData = await DashboardService.getConsumes({ ...filters });\r\n setConsumes(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingConsumes(false);\r\n }\r\n };\r\n\r\n const getNextMaintenances = async () => {\r\n try {\r\n setIsLoadingNextMaintenances(true);\r\n const dashboardData = await DashboardService.getNextMaintenances({ ...filters });\r\n setNextMaintenances(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingNextMaintenances(false);\r\n }\r\n };\r\n\r\n const getMonthlyCost = async () => {\r\n try {\r\n setIsLoadingMonthlyCost(true);\r\n const dashboardData = await DashboardService.getMonthlyCost({ ...filters });\r\n setMonthlyCost(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingMonthlyCost(false);\r\n }\r\n };\r\n\r\n const getMonthlyRoutes = async () => {\r\n try {\r\n setIsLoadingMonthlyRoute(true);\r\n const dashboardData = await DashboardService.getMonthlyRoutes({ ...filters });\r\n setMonthlyRoutes(dashboardData);\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.DASHBOARD, 'error getting dashboard data', error);\r\n } finally {\r\n setIsLoadingMonthlyRoute(false);\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n getCounters();\r\n getExpenses();\r\n getConsumes();\r\n getNextMaintenances();\r\n getMonthlyCost();\r\n //getMonthlyRoutes();\r\n }, [filters]);\r\n\r\n const onChangeFilters = (f: FiltersFormModel) => {\r\n f.dateFrom = f.dateFrom == null ? defaultDateFrom : moment.utc(f.dateFrom).toDate();\r\n f.dateTo = f.dateTo == null ? defaultDateTo : moment.utc(f.dateTo).endOf('month').toDate();\r\n f.timePeriod = f.timePeriod == null ? defaultTimePeriod : f.timePeriod;\r\n setFilters(f);\r\n filters.dateFrom = f.dateFrom;\r\n filters.dateTo = f.dateTo;\r\n filters.vehicleId = f.vehicleId;\r\n filters.timePeriod = f.timePeriod;\r\n filters.inactives = f.inactives;\r\n getData();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.dateFrom ? <>{t('common.range.from')} \r\n : filters.dateTo ? <>{t('common.range.to')} : undefined,\r\n label: t('dashboard.filters.dates'),\r\n onRemove: () => { filters.dateFrom = filters.dateTo = null; filters.timePeriod = filters.timePeriod == TimePeriod.OTHER ? filters.timePeriod : null; onChangeFilters(filters) },\r\n showRemoveFilter: filters.dateFrom?.getFullYear() != defaultDateFrom?.getFullYear() ||\r\n Number(filters.dateFrom ? filters.dateFrom.getMonth() + 1 : 0) != Number(defaultDateFrom ? defaultDateFrom.getMonth() + 1 : 0) ||\r\n filters.dateTo?.getFullYear() != defaultDateTo?.getFullYear() ||\r\n Number(filters.dateTo ? filters.dateTo.getMonth() + 1 : 0) != Number(defaultDateTo ? defaultDateTo.getMonth() + 1 : 0)\r\n },\r\n {\r\n value: vehicles.find(x => x.value == filters.vehicleId)?.label,\r\n label: t('vehicle.registration'),\r\n onRemove: () => { filters.vehicleId = null; onChangeFilters(filters) }\r\n },\r\n {\r\n value: t(('dashboard.time_periods.' + filters.timePeriod) as any),\r\n label: t('dashboard.filters.period_of_times'),\r\n onRemove: () => { filters.timePeriod = null; filters.dateFrom = filters.dateTo = null; onChangeFilters(filters) },\r\n showRemoveFilter: filters.timePeriod != defaultTimePeriod\r\n },\r\n {\r\n value: filters.inactives ? t('common.yes') : '',\r\n label: t('vehicle.inactives'),\r\n onRemove: () => { filters.inactives = false; onChangeFilters(filters) }\r\n }\r\n ]} />\r\n\r\n \r\n\r\n \r\n \r\n {data?.counters && }\r\n {data?.counters && }\r\n {data?.counters && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DashboardScreen;","import Http from '../../common/services/Http';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { ImportChargeProcessFileViewModel, ImportChargeViewModel } from './models/ImportChargeViewModel';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { ImportExpenseFileDto, ImportExpenseFileIdDto, ImportExpenseFileItemDto } from './models/ImportExpenseFileDto';\r\nimport { ImportExpenseFilesSearchCriteria } from './models/ImportExpenseFilesSearchCriteria';\r\nimport { ImportExpenseFileItemsSearchCriteria } from './models/ImportExpenseFileItemsSearchCriteria';\r\n\r\nclass ImportChargeService {\r\n \r\n public import(model: ImportChargeViewModel, attachment: CustomFile) {\r\n return Http.postWithFile('importCharge', model, [attachment]);\r\n }\r\n\r\n public getList(criteria: ImportExpenseFilesSearchCriteria) {\r\n return Http.get>('importCharge', criteria);\r\n }\r\n\r\n public getListItems(criteria: ImportExpenseFileItemsSearchCriteria) {\r\n return Http.get>('importCharge/list-items', criteria);\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('importCharge/' + id);\r\n }\r\n\r\n public updateFileItem(model: ImportExpenseFileItemDto) {\r\n return Http.post('importCharge/change-file-item', model);\r\n }\r\n\r\n public process(model: ImportExpenseFileIdDto) {\r\n return Http.post('importCharge/process-file', model);\r\n }\r\n\r\n public remove(model: ImportExpenseFileIdDto) {\r\n return Http.put('importCharge/deactivate', model);\r\n } \r\n}\r\n\r\nexport default new ImportChargeService();","import { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Http from 'common/services/Http';\r\n\r\n\r\n\r\nclass ExpenseTemplatesService {\r\n\r\n public catalog() {\r\n return Http.get('expensetemplates/catalog');\r\n } \r\n}\r\n\r\nexport default new ExpenseTemplatesService();\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ImportChargeFormScreen.module.scss';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { DATE_TIME_FORMAT_DEFAUT, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Label from 'common/components/label/Label';\r\nimport Button from 'common/components/button/Button';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport Loading from 'common/services/Loading';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { ImportExpenseFileItemDto } from 'api/import-charges/models/ImportExpenseFileDto';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport GenericTypesService from 'api/genericTypes/GenericTypesService';\r\nimport Utils from 'common/services/Utils';\r\nimport ImportChargeService from 'api/import-charges/ImportChargeService';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport Select from 'common/components/select/Select';\r\n\r\ntype Props = {\r\n item: ImportExpenseFileItemDto;\r\n mode?: string;\r\n onCancel: () => void;\r\n onSave?: (f: ImportExpenseFileItemDto) => void;\r\n supplierId?: string | undefined;\r\n\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ImportChargeFormScreen: React.FC = ({ item, mode, onCancel, onSave, supplierId }: Props) => {\r\n\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { setValue, getValues, errors } = form;\r\n\r\n const [typesOptions, setTypes] = useState([]);\r\n const [isDetails, setIsDetails] = useState(mode == 'details');\r\n const [itemState, setItemState] = useState();\r\n const [vehiclesOptions, setVehicles] = useState([]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [vehiclesOptionsList, __typesOptions] = await Promise.all([\r\n VehiclesService.catalog(),\r\n supplierId ? GenericTypesService.catalogChargeBySupplierId(supplierId) : GenericTypesService.catalogCharge()\r\n ]);\r\n\r\n setVehicles(vehiclesOptionsList);\r\n\r\n const types2 = __typesOptions.map(x => ({ ...x, name: x.label, label: x.isSystem ? t(`common.generic_types.${x.label}` as any) : x.label }));\r\n const types = Utils.sortAlphabetically(types2);\r\n setTypes(types);\r\n if (item) {\r\n setItemState(item);\r\n form.reset(item);\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get generic types`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n\r\n const onSubmit = async (r: ImportExpenseFileItemDto) => {\r\n try {\r\n Loading.show();\r\n await ImportChargeService.updateFileItem(r);\r\n\r\n if (onSave) {\r\n onSave(r);\r\n }\r\n else {\r\n Loading.hide();\r\n }\r\n } catch (error) {\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create or update import expense file`, error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{t('import_charges.line')} : {item?.line}
\r\n
{t('common.date')} :
\r\n
{t('import_charges.registration_number')} : {item?.registrationNumber}
\r\n
{t('import_charges.expense')} : {item?.typeCode}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {\r\n setValue('typeName', tp ? tp.label : null)\r\n }}\r\n filterOption={(candidate: any, input: any) => input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('vehicleId', data?.value ?? null);\r\n }}\r\n value={vehiclesOptions.find(x => x.value === value) ?? null}\r\n />\r\n );\r\n }}\r\n control={form.control}\r\n name=\"vehicleId\"\r\n defaultValue={getValues('vehicleId')} />\r\n \r\n \r\n \r\n \r\n


\r\n
\r\n\r\n
\r\n \r\n onCancel()}\r\n />\r\n\r\n {!isDetails &&\r\n < Button\r\n type='submit'\r\n text={t('common.save')}\r\n size={'normal'}\r\n />\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ImportChargeFormScreen;","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { FaInfoCircle } from 'react-icons/fa';\r\nimport { DATE_TIME_FORMAT_DEFAUT, LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport Box from 'common/components/box/Box';\r\nimport Label from 'common/components/label/Label';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport FileSelector from 'common/components/fileSelector/FileSelector';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport CustomFile from 'common/models/CustomFile';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport styles from './ImportChargeScreen.module.scss';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport ImportChargeService from 'api/import-charges/ImportChargeService';\r\nimport Logger from 'common/services/Logger';\r\nimport ExpenseTemplatesService from 'api/expenseTemplates/ExpenseTemplatesService';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { ImportChargeViewModel } from 'api/import-charges/models/ImportChargeViewModel';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { ImportExpenseFileDto, ImportExpenseFileItemDto } from 'api/import-charges/models/ImportExpenseFileDto';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport { FaEllipsisV } from 'react-icons/fa';\r\nimport ImportChargeFormScreen from './components/form/ImportChargeFormScreen';\r\nimport Loading from 'common/services/Loading';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { ImportExpenseFileItemsSearchCriteria } from 'api/import-charges/models/ImportExpenseFileItemsSearchCriteria';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport Input from 'common/components/input/Input';\r\n\r\ntype Types = 'edit' | 'details' | 'new' | 'list';\r\n\r\nconst ImportChargeScreen: React.FC = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const { type, itemId } = useParams<{ type: Types, itemId: string }>();\r\n const [attachment, setAttachment] = useState();\r\n const [expenseFile, setExpenseFile] = useState();\r\n const [expenseFileItemsPage, setExpenseFileItemsPage] = useState | null>(null);\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: 50,\r\n page: 1,\r\n orderColumn: 'line',\r\n orderBy: 'asc'\r\n });\r\n\r\n const [supplierOptions, setSupplierOptions] = useState([]);\r\n const [templateOptions, setTemplateOptions] = useState([]);\r\n const [openItemEditPopover, setOpenItemEditPopover] = useState(null);\r\n const [refreshList, setRefreshList] = useState(0);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const formAdd = useForm({ shouldUnregister: false });\r\n const { handleSubmit, setValue, register, errors } = formAdd;\r\n const [isDetails] = useState(type && type == 'details' ? true : false);\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasChargesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_IMPORT_EXPENSES_WRITE']);\r\n const [supplierId, setSupplierId] = useState(undefined);\r\n const [supplierName, setSupplierName] = useState(undefined);\r\n\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n \r\n const templates = await ExpenseTemplatesService.catalog();\r\n setTemplateOptions((templates || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' })));\r\n setSupplierOptions([]);\r\n\r\n const suppliers = await SuppliersService.catalog({ isCharges: true });\r\n setSupplierOptions((suppliers || []).map((x: SelectValueLabel) => ({ value: x.value || '', label: x.label || '' })));\r\n\r\n if (itemId) {\r\n\r\n const file = await ImportChargeService.getById(itemId);\r\n setExpenseFile(file);\r\n if (file.status === 'OK' && !isDetails) {\r\n navigateTo('details', itemId);\r\n }\r\n criteria.expenseFileId = file.id;\r\n setSupplierId(file.supplierId);\r\n setSupplierName(file.supplierName);\r\n setCriteria(criteria);\r\n await getItems(criteria);\r\n\r\n } else {\r\n Loading.hide();\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get import charge info`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const getItems = async (criteriap?: ImportExpenseFileItemsSearchCriteria) => {\r\n try {\r\n Loading.show();\r\n const data = await ImportChargeService.getListItems(criteriap ? criteriap : criteria);\r\n setExpenseFileItemsPage(data);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get import expense file items`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const setValuesFiles = (files: CustomFile[]) => {\r\n setAttachment(files[0]);\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n setCriteria({ ...criteria, page: page });\r\n }\r\n\r\n const renderActionsCell = (row: ImportExpenseFileItemDto, _: any, index: number) => {\r\n const elem = document.getElementById('root');\r\n return (\r\n <>\r\n setOpenItemEditPopover(v ? row.id! : null)}\r\n content={setIsPopoverOpen =>\r\n {\r\n setIsPopoverOpen(false);\r\n }}\r\n onSave={f => {\r\n setRefreshList(refreshList + 1);\r\n setIsPopoverOpen(false);\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n }}\r\n supplierId={supplierId}\r\n />\r\n } />\r\n
\r\n {type === 'edit' && hasChargesWritePolicy && \r\n { { setOpenItemEditPopover(v ? row.id! : null); }}>\r\n {t('common.edit')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n );\r\n }\r\n\r\n const renderVehicleCell = (row: ImportExpenseFileItemDto) => {\r\n return (\r\n
\r\n {!row.vehicleId ?\r\n
\r\n
\r\n {row.registrationNumber}\r\n \r\n
\r\n
\r\n : {row.registrationNumber}}\r\n
\r\n )\r\n }\r\n\r\n const renderExpenseTypeCell = (row: ImportExpenseFileItemDto) => {\r\n return (\r\n
\r\n {!row.typeId ?\r\n
\r\n
\r\n {row.typeCode}\r\n \r\n
\r\n
\r\n : {row.typeCode}}\r\n
\r\n )\r\n }\r\n\r\n const tableEditColumns: ListingTableColumn[] = [\r\n {\r\n name: t('import_charges.line'),\r\n renderCell: row =>
{row.line}
\r\n },\r\n {\r\n name: t('common.date'),\r\n renderCell: row =>
\r\n
\r\n
,\r\n hideOn: ['sm'],\r\n searchField: 'date'\r\n },\r\n {\r\n name: t('import_charges.expense'),\r\n width: 'fill',\r\n renderCell: renderExpenseTypeCell\r\n },\r\n {\r\n name: t('import_charges.qty'),\r\n columnCellAlignment: 'right',\r\n cellAlignment: 'right',\r\n renderCell: row =>
\r\n },\r\n {\r\n name: t('import_charges.cost'),\r\n columnCellAlignment: 'right',\r\n cellAlignment: 'right',\r\n renderCell: row =>
{row.cost !== undefined && row.cost !== null ? : '-'}
\r\n },\r\n {\r\n name: t('import_charges.registration_number'),\r\n renderCell: renderVehicleCell\r\n },\r\n {\r\n name: t('import_charges.kilometers'),\r\n columnCellAlignment: 'right',\r\n cellAlignment: 'right',\r\n renderCell: row =>
\r\n },\r\n {\r\n renderCell: renderActionsCell,\r\n\r\n width: 100,\r\n preventClick: true,\r\n cellStyle: { overflow: 'unset' },\r\n cellAlignment: 'right',\r\n }\r\n ];\r\n\r\n const tableDetailsColumns = tableEditColumns.slice(0, tableEditColumns.length - 1);\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(`/import-charges/${typeUrl}/${id}`);\r\n } else {\r\n history.push(`/import-charges`);\r\n }\r\n }\r\n\r\n const showRemoveItemDialog = (item: ImportExpenseFileDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await ImportChargeService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n navigateTo();\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete import charges file`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const submitAdd = (data: any) => {\r\n if (attachment) {\r\n Loading.show();\r\n ImportChargeService.import({ expenseTemplateId: data.expenseTemplateId, supplierId: data.supplierId }, attachment)\r\n .then(() => {\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n navigateTo();\r\n })\r\n .catch(error => {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't import charges`, error);\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }).finally(() => {\r\n Loading.hide();\r\n });\r\n }\r\n }\r\n\r\n const processFile = () => {\r\n if (expenseFile) {\r\n Loading.show();\r\n ImportChargeService.process({ id: expenseFile.id })\r\n .then(result => {\r\n if (result.validated) {\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n navigateTo();\r\n }\r\n else {\r\n addToast(result.error, { appearance: 'warning' });\r\n }\r\n\r\n })\r\n .catch(error => {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't import charges - process file`, error);\r\n addToast(t('common.messages.record_save_error'), { appearance: 'error' });\r\n }).finally(() => {\r\n Loading.hide();\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n useEffect(() => {\r\n getItems();\r\n }, [refreshList]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n {/* new */}\r\n {type == 'new' && \r\n \r\n \r\n
\r\n navigateTo()} /> {t('import_charges.new')}\r\n
\r\n \r\n
\r\n\r\n\r\n
submitAdd(data))}>\r\n \r\n \r\n {\r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n // getSupplierByTemplate(data.value);\r\n setValue('expenseTemplateId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n setValue('supplierId', data ? data.value : null);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('common.add_new_file')}}\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n />\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
}\r\n {(type == 'edit' || type == 'details') && \r\n \r\n \r\n
\r\n {type == 'edit' &&\r\n <>\r\n navigateTo()} /> {t('import_charges.edit')}\r\n }\r\n {type == 'details' &&\r\n <>\r\n navigateTo()} /> {t('import_charges.details')}\r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n type == 'details' ? navigateTo() : navigateTo('details', itemId)}\r\n text={t('common.cancel')}\r\n />\r\n\r\n {type != 'edit' && expenseFile?.status !== 'OK' && hasChargesWritePolicy &&\r\n showRemoveItemDialog({ id: itemId } as ImportExpenseFileDto)} />\r\n }\r\n\r\n {type != 'edit' && expenseFile?.status !== 'OK' && hasChargesWritePolicy &&\r\n { navigateTo('edit', itemId); }}\r\n />}\r\n\r\n {type === 'edit' && expenseFile?.status !== 'OK' && hasChargesWritePolicy &&\r\n }\r\n
\r\n\r\n \r\n
}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ImportChargeScreen; \r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './ImportChargeFilters.module.scss';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { DATE_FORMAT_DEFAUT, LOGGER_LOG_TYPE } from 'Config';\r\nimport Logger from 'common/services/Logger';\r\nimport { FaCalendarAlt } from 'react-icons/fa';\r\nimport Button from 'common/components/button/Button';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport InputGroup from 'common/components/inputGroup/InputGroup';\r\nimport DateWithHourController from 'common/components/dateWithHour/DateWithHourController';\r\nimport SuppliersService from 'api/suppliers/SuppliersService';\r\nimport Select from 'common/components/select/Select';\r\n\r\n\r\n\r\nexport interface Filters {\r\n startDate?: Date | null,\r\n endDate?: Date | null,\r\n supplierId?: string;\r\n supplierName?: string;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onFilter: (filters: Filters) => void;\r\n load?: boolean;\r\n}\r\n\r\n\r\nconst ImportChargeFilters: React.FC = ({ filters, onFilter, load }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch, control } = form;\r\n const [suppliersOptions, setSuppliers] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n if (load) {\r\n form.reset(filters);\r\n onSubmit(filters);\r\n } else {\r\n form.reset(filters);\r\n }\r\n }, [filters]);\r\n\r\n const getData = async () => {\r\n try {\r\n const [suppliersOptions] = await Promise.all([\r\n SuppliersService.catalog({ isCharges: true })\r\n ]);\r\n\r\n setSuppliers(suppliersOptions);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get data`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n const model = {\r\n startDate: null,\r\n endDate: null,\r\n supplierId: undefined,\r\n supplierName: undefined\r\n };\r\n reset(model);\r\n onSubmit(model);\r\n getData();\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"startDate\"\r\n isDisabled={false}\r\n timePlaceholder={t('common.hour')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n } removeIconOrTextBorderRadius={true} />}\r\n name=\"endDate\"\r\n isDisabled={false}\r\n timePlaceholder={t('common.hour')}\r\n minDate={form.watch('startDate') || undefined}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n setValue('supplierName', suppliersOptions.find(x => x.value == data?.value)?.label ?? null);\r\n onChange(data?.value ?? null);\r\n }}\r\n value={suppliersOptions.find(x => x.value === value) ? { label: suppliersOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"supplierId\"\r\n defaultValue={getValues('supplierId')} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default memo(ImportChargeFilters);","import ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ScreenTitle from '../../common/components/screenTitle/ScreenTitle';\r\nimport ScreenContainer from '../../common/components/screenContainer/ScreenContainer';\r\nimport Box from 'common/components/box/Box';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport styles from './ImportChargesScreen.module.scss';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport { DATE_TIME_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport { ImportExpenseFileDto } from 'api/import-charges/models/ImportExpenseFileDto';\r\nimport { ImportExpenseFilesSearchCriteria } from 'api/import-charges/models/ImportExpenseFilesSearchCriteria';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport DropdownItem from 'common/components/dropdown/DropdownItem';\r\nimport { FaEllipsisH } from 'react-icons/fa';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport ImportChargeService from 'api/import-charges/ImportChargeService';\r\nimport Loading from 'common/services/Loading';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport ImportChargeFilters, { Filters } from './components/filters/ImportChargeFilters';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\n\r\nexport type Props = {\r\n criteriaProp?: ImportExpenseFilesSearchCriteria;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst ImportChargesScreen = ({ criteriaProp, ...props }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const [importExpenseFilePage, setImportExpenseFilePage] = useState | null>(null);\r\n const [criteria, setCriteria] = useState(!criteriaProp ? {\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'date',\r\n orderBy: 'desc'\r\n } : criteriaProp);\r\n\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [filters, setFilters] = useState({});\r\n\r\n const showRemoveItemDialog = (item: ImportExpenseFileDto) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n };\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasChargesWritePolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_IMPORT_EXPENSES_WRITE']);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const files = await ImportChargeService.getList(criteria);\r\n setImportExpenseFilePage(files);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.CHARGES, `Couldn't get import expense file`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally{\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => { \r\n getData();\r\n }, [criteria]);\r\n\r\n const onClickItem = (item: ImportExpenseFileDto, isDetails: boolean) => {\r\n history.push(`import-charges/${isDetails ? 'details' : 'edit'}/${item.id}`);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n\r\n try {\r\n await ImportChargeService.remove(itemToRemove);\r\n setCriteria({ ...criteria, page: 1 });\r\n onCancelRemove();\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete import charges file`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n }\r\n };\r\n\r\n const renderTableActionCell = (\r\n row: ImportExpenseFileDto,\r\n ) => {\r\n const urlDetails = `import-charges/details/${row.id}`;\r\n const urlEdit = `import-charges/edit/${row.id}`;\r\n\r\n return (\r\n \r\n \r\n {t('common.details')}\r\n \r\n {hasChargesWritePolicy && row.status != 'OK' && \r\n {t('common.edit')}\r\n }\r\n {hasChargesWritePolicy && showRemoveItemDialog(row)}>\r\n {t('common.remove')}\r\n }\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n name: t('common.date'),\r\n renderCell: row =>
\r\n \r\n
,\r\n width: 'fill',\r\n hideOn: ['sm'],\r\n searchField: 'date',\r\n onSearch: onTableFilter\r\n },\r\n {\r\n name: t('common.name'),\r\n renderCell: row =>
{row.fileName}
,\r\n searchField: 'file_name',\r\n onSearch: onTableFilter\r\n },\r\n {\r\n name: t('common.supplier'),\r\n renderCell: row => <>\r\n
\r\n {row.supplierUrl && } {(row.supplierName || '-')}\r\n
\r\n ,\r\n hideOn: ['sm', 'md', 'lg', 'xl'],\r\n searchField: 'supplier.name',\r\n onSearch: onTableFilter\r\n },\r\n {\r\n name: t('import_charges.status'),\r\n renderCell: row =>
{t(('import_charges.process_status.' + row.status) as any)}
,\r\n searchField: 'status',\r\n onSearch: onTableFilter\r\n },\r\n {\r\n name: '',\r\n width: '60px',\r\n cellAlignment: 'right',\r\n preventClick: true,\r\n renderCell: renderTableActionCell,\r\n cellStyle: { overflow: 'unset' },\r\n hideOn: ['sm', 'md' ]\r\n }\r\n ];\r\n \r\n const onPageChange = (page: number) => {\r\n setCriteria({ ...criteria, page: page });\r\n }\r\n\r\n const onChangeFilters = (f: Filters) => {\r\n setFilters(f);\r\n\r\n setCriteria({\r\n ...criteria,\r\n page: 1,\r\n startDate: f.startDate,\r\n endDate: f.endDate,\r\n supplierId: f.supplierId\r\n });\r\n }\r\n\r\n const navigateTo = () => { \r\n history.push(`/charges`);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {hasChargesWritePolicy && history.push(`/import-charges/new`)} />}\r\n \r\n \r\n \r\n \r\n
\r\n navigateTo()} />\r\n
\r\n \r\n
\r\n
\r\n { onChangeFilters(f) }}\r\n />\r\n
\r\n
\r\n\r\n onClickItem(row, true)}\r\n allowHover={true}\r\n onHref={row => `/import-charges/details/${row.id}`}\r\n initialSearch={{ colField: 'date', isOrderAsc: false }} \r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ImportChargesScreen;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\nimport styles from './VehiclesMileageFiltersScreen.module.scss';\r\nimport Button from '../../../common/components/button/Button';\r\nimport FormItem from '../../../common/components/formItem/FormItem';\r\nimport Label from '../../../common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from '../../../common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport VehicleSegmentsService from 'api/vehicleSegments/VehicleSegmentsService';\r\nimport Input from 'common/components/input/Input';\r\nimport RangeInputPicker from 'common/components/rangeInputPicker/RangeInputPicker';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport UseContractsService from 'api/contracts/useContract/UseContractsService';\r\nimport Utils from 'common/services/Utils';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport { DATEPICKER_FORMAT_DEFAULT } from 'Config';\r\n\r\nexport interface Filters {\r\n registrationNumber?: string;\r\n registrationDate?: Date | null;\r\n segmentId?: string;\r\n segmentName?: string;\r\n driverId?: string;\r\n driverName?: string;\r\n useContractTypeId?: string;\r\n useContractTypeName?: string;\r\n useContractActive?: boolean;\r\n useContractEndsBefore?: Date | null;\r\n useContractEndsAfter?: Date | null;\r\n inactives?: boolean;\r\n projectionsExceeded?: boolean;\r\n page?: number;\r\n pathStartDate?: Date | null;\r\n pathEndDate?: Date | null;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n hasCountersPolicy?: boolean;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n showTrajectDatesFilter?: boolean\r\n}\r\n\r\nconst VehiclesMileageFiltersScreen: React.FC = ({ filters, hasCountersPolicy, onChange, onFilter, showTrajectDatesFilter }: Props) => {\r\n const { t } = useTranslation();\r\n const guidEmpty = '00000000-0000-0000-0000-000000000000';\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch, control } = form;\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const [segmentsOptions, setSegments] = useState([]);\r\n const [useContractTypeOptions, setUseContractTypeOptions] = useState([]);\r\n const [selectUseContractActive, setSelectUseContractActive] = useState();\r\n const [selectUseContractTypeId, setSelectUseContractTypeId] = useState();\r\n\r\n //const [driversOptions, setDrivers] = useState([]);\r\n\r\n const getData = async () => {\r\n const segmentsOptionsDB = await VehicleSegmentsService.catalog();\r\n setSegments(segmentsOptionsDB);\r\n\r\n\r\n const useContractTypesOrig = await UseContractsService.getUseContractTypes();\r\n const useContractTypes = useContractTypesOrig.map(x => ({ ...x, label: t(`common.use_contract_types.${x.label}` as any) }));\r\n const useContractTypesOrdered = Utils.sortAlphabetically(useContractTypes);\r\n const ___useContractTypesOrdered = [...useContractTypesOrdered, { value: '00000000-0000-0000-0000-000000000000', label: t('contracts.use_contract.without_contract') }];\r\n setUseContractTypeOptions(___useContractTypesOrdered);\r\n\r\n\r\n\r\n //const driversOptions = await DriversService.catalog();\r\n //setDrivers(driversOptions);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (form.getValues('useContractActive') != undefined) {\r\n setSelectUseContractActive(form.getValues('useContractActive'));\r\n }\r\n\r\n if (form.getValues('useContractTypeId') != undefined) {\r\n setSelectUseContractTypeId(form.getValues('useContractTypeId'));\r\n }\r\n\r\n\r\n\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n reset({\r\n registrationNumber: undefined,\r\n registrationDate: undefined,\r\n segmentId: undefined,\r\n useContractTypeId: undefined,\r\n useContractActive: undefined,\r\n useContractEndsAfter: undefined,\r\n useContractEndsBefore: undefined,\r\n inactives: false,\r\n projectionsExceeded: false,\r\n pathStartDate: undefined,\r\n pathEndDate: undefined\r\n });\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n const getVal = (arr: any[] | undefined, index: number): any | undefined => {\r\n return arr && arr.length > index ? arr[index] : undefined;\r\n }\r\n\r\n const onSelectUseContractActive = (status: boolean) => {\r\n setSelectUseContractActive(selectUseContractActive == status ? undefined : status);\r\n setValue('useContractActive', selectUseContractActive == status ? undefined : status);\r\n setValue('useContractEndsAfter', undefined);\r\n setValue('useContractEndsBefore', undefined);\r\n\r\n //onInputChange();\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('registrationNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('vehicle.registration_identification')}\r\n autoComplete='off'\r\n defaultValue={watch('registrationNumber')} />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('segmentName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={segmentsOptions.find(x => x.value === value) ? { label: segmentsOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"segmentId\"\r\n defaultValue={getValues('segmentId')} />\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('useContractTypeId', data?.value ?? null);\r\n setValue('useContractTypeName', data?.label ?? null);\r\n setSelectUseContractTypeId(data?.value ?? null);\r\n if (data?.value == guidEmpty) {\r\n setValue('useContractActive', undefined);\r\n setValue('useContractEndsAfter', undefined);\r\n setValue('useContractEndsBefore', undefined);\r\n }\r\n onInputChange();\r\n }}\r\n value={useContractTypeOptions.find(x => x.value === value) ? { label: useContractTypeOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"useContractTypeId\"\r\n defaultValue={getValues('useContractTypeId')} />\r\n \r\n \r\n\r\n {selectUseContractTypeId != guidEmpty && \r\n \r\n \r\n
\r\n
onSelectUseContractActive(true)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('contracts.states.in_progress')}\r\n
\r\n
\r\n
\r\n
onSelectUseContractActive(false)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('contracts.states.expired')}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n {selectUseContractActive && \r\n \r\n \r\n {\r\n form.setValue('useContractEndsAfter', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('useContractEndsBefore', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('useContractEndsAfter')}\r\n defaultEndValue={form.getValues('useContractEndsBefore')}\r\n isDatePicker\r\n />\r\n \r\n \r\n }\r\n\r\n {hasCountersPolicy && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {showTrajectDatesFilter && \r\n \r\n \r\n {\r\n form.setValue('pathStartDate', startValue ? moment(startValue).toDate() : undefined);\r\n form.setValue('pathEndDate', endValue ? moment(endValue).toDate() : undefined);\r\n onInputChange();\r\n }}\r\n defaultStartValue={form.getValues('pathStartDate')}\r\n defaultEndValue={form.getValues('pathEndDate')}\r\n dateFormat={DATEPICKER_FORMAT_DEFAULT}\r\n isDatePicker\r\n />\r\n \r\n \r\n }\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VehiclesMileageFiltersScreen);\r\n","export default __webpack_public_path__ + \"static/media/gauge-danger.b82b1200.svg\";","import { UserProfile } from 'api/account/models/UserProfile';\r\nimport UsersService from 'api/users/UsersService';\r\nimport { VehiclesSearchCriteria } from 'api/vehicles/models/VehiclesSearchCriteria';\r\nimport { VehicleViewModel } from 'api/vehicles/models/VehicleViewModel';\r\nimport VehiclesService from 'api/vehicles/VehiclesService';\r\nimport CounterBox from 'common/components/counterBox/CounterBox';\r\nimport DeletedVehicleCircle from 'common/components/deletedVehicleCircle/DeletedVehicleCircle';\r\nimport IconWithText from 'common/components/iconWithText/IconWithText';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport MoneyFormat from 'common/components/moneyFormat/MoneyFormat';\r\nimport Logger from 'common/services/Logger';\r\nimport { DATE_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE, USE_CONTRACT_TYPES } from 'Config';\r\nimport dayjs from 'dayjs';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { BiTargetLock } from 'react-icons/bi';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { Reducers } from 'store/types';\r\nimport styles from './VehiclesMileageScreen.module.scss';\r\nimport VehiclesMileageFiltersScreen, { Filters } from './components/VehiclesMileageFiltersScreen';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport CarIcon from 'assets/svg/car.svg';\r\nimport GaugeIcon from 'assets/svg/gauge.svg';\r\nimport GaugeDangerIcon from 'assets/svg/gauge-danger.svg';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport MediaIcon from 'assets/svg/media.svg';\r\nimport AlertIcon from 'assets/svg/i_alertas_white.svg';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Box from 'common/components/box/Box';\r\nimport { ContractStatusColorEnum } from 'api/contracts/enums/ContractStatusColorEnum';\r\nimport { VehicleMileageCounterListDto } from 'api/vehicles/models/VehicleDto';\r\nimport Loading from 'common/services/Loading';\r\nimport { FaHourglassEnd, FaRegClock } from 'react-icons/fa';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport LoadingSpinner from 'common/components/loading/LoadingSpinner';\r\nimport { TrackingProvider } from 'api/tracking/enums/TrackingProvider';\r\nimport CompaniesService from 'api/companies/CompaniesService';\r\nimport { CompanyDto } from 'api/companies/models/CompanyDto';\r\n\r\nimport DropdownItem from 'common/components/popover/PopoverItem';\r\nimport Dropdown from 'common/components/dropdown/Dropdown';\r\nimport { FaFileExport } from 'react-icons/fa';\r\nimport moment from 'moment';\r\nimport Colors from 'styles/export/colors.module.scss';\r\nimport EcoDriving from 'screens/vehicles-gps/components/ecoDriving/EcoDriving';\r\n\r\nconst defaultcostsEndDate = dayjs().endOf('month').toDate();\r\n\r\nconst VehiclesMileageScreen = () => {\r\n\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.registration_number',\r\n orderBy: 'asc',\r\n costsEndDate: defaultcostsEndDate,\r\n inactives: true,\r\n projectionsExceeded: true,\r\n hasKmFeature: true\r\n });\r\n\r\n const [vehicles, setVehicles] = useState([]);\r\n const history = useHistory();\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [totalItems, setTotalItems] = useState(0);\r\n\r\n const [filters, setFilters] = useState({ inactives: true, projectionsExceeded: true });\r\n const [filtersTotal, setFiltersTotal] = useState(2);\r\n\r\n const [counters, setCounters] = useState();\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const hasCountersPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['CHARGES_TOTAL_READ']);\r\n const hasGpsReadPolicy = UsersService.hasPolicies(userProfile?.policies || [], ['SETTINGUP_GPS_READ']);\r\n\r\n const [pageLoaded, setPageLoaded] = useState(false);\r\n const [company, setCompany] = useState();\r\n const iteration = useRef(0);\r\n const getData = async () => {\r\n\r\n try {\r\n Loading.show();\r\n\r\n let countersDB = null;\r\n if (hasCountersPolicy) {\r\n countersDB = await VehiclesService.getMileageCountersList(criteria);\r\n }\r\n const vehiclesDB = await VehiclesService.getList(criteria);\r\n setCurrentPage(vehiclesDB.currentPage);\r\n setTotalItems(vehiclesDB.totalItems);\r\n\r\n setVehicles(vehiclesDB.items);\r\n\r\n\r\n const c = await CompaniesService.getCurrent();\r\n setCompany(c);\r\n\r\n if (countersDB) {\r\n setCounters(countersDB);\r\n }\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const hydrateGpsData = async () => {\r\n try {\r\n iteration.current++;\r\n const it = iteration.current;\r\n const vehiclesToHydrate = vehicles.filter(x => x.trackingDeviceId);\r\n if (!vehiclesToHydrate.length) {\r\n return;\r\n }\r\n\r\n criteria.trackingDeviceIds = vehiclesToHydrate.map(x => x.trackingDeviceId);\r\n const gpsData = await TrackingService.hydrateGpsData(criteria);\r\n\r\n const _vehicles = vehicles.map(vehicle => {\r\n const gps = gpsData.find(x => x.trackingDeviceId == vehicle.trackingDeviceId);\r\n if (gps) {\r\n return { ...vehicle, totalKms: gps.totalKms, totalPenalty: gps.totalPenalty, totalMinutes: gps.totalMinutes, totalIdling: gps.totalIdling, gpsDataHydrated: true }\r\n }\r\n return { ...vehicle, gpsDataHydrated: true };\r\n });\r\n if(iteration.current == it){\r\n setVehicles(_vehicles);\r\n }\r\n\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles gps gata`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const renderImageCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderDescCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n
\r\n {row.registrationNumber}\r\n {!row.active && }\r\n
\r\n
{row.vehicleBrandName + (' | ') + row.vehicleModelName}
\r\n
\r\n )\r\n }\r\n\r\n const renderTypeContractCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n {row.useContractTypeName &&
{t(`common.use_contract_types.${row.useContractTypeName}` as any)}
}\r\n {row.useContractNumber &&
{t('common.number')}: {row.useContractNumber}
}\r\n {row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE && row.useContractEndDate &&
\r\n
\r\n {`${t('vehicles_mileage.list.months')} ${row.useContractPastMonths} ${t('vehicles_mileage.list.of')} ${row.useContractMonthsContract}`}
\r\n \r\n
\r\n }\r\n {!row.useContractEndDate && row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE &&
\r\n
\r\n {`${t('vehicles_mileage.list.months')} ${row.useContractPastMonths} (${t('vehicles_mileage.without_end_date')})`}
\r\n \r\n
\r\n }\r\n {row.useContractTypeName == USE_CONTRACT_TYPES.PURCHASE &&
\r\n
\r\n {`${t('vehicles_mileage.list.months')} ${row.useContractPastMonths}`}
\r\n \r\n
\r\n }\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
\r\n
{t('vehicles_mileage.without_current_contract')}
\r\n {row.useContractExpiredEndDate &&
\r\n \r\n {t('vehicles_mileage.last_contract_in')}: \r\n \r\n
}\r\n
\r\n }\r\n
\r\n )\r\n }\r\n\r\n const renderContractCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n {row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE && row.useContractKmsByMonth && row.useContractPastMonths && row.useContractKmContractual ?\r\n
\r\n\r\n
\r\n  \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n : <>}\r\n {row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE && !row.useContractKmContractual ?\r\n
\r\n
\r\n
\r\n  \r\n \r\n
\r\n \r\n
\r\n {row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE &&
{t('vehicles_mileage.without_km_contracted')}
}\r\n
\r\n : <>}\r\n {\r\n row.useContractTypeName === USE_CONTRACT_TYPES.PURCHASE &&\r\n
\r\n
\r\n
\r\n  \r\n {}\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
{'-'}
\r\n }\r\n
)\r\n }\r\n\r\n const renderKilometersCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n
\r\n \r\n
\r\n \r\n {hasGpsReadPolicy && row && !!row.currentKilometersTracking &&\r\n
\r\n {t('vehicles_mileage.list.gps')}: \r\n
}\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
{'-'}
\r\n }\r\n\r\n\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n
\r\n
\r\n
\r\n {t('vehicles_mileage.list.average_real_kms')} \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
{'-'}
\r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderAverageRealKmsCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
{'-'}
\r\n }\r\n
)\r\n }\r\n\r\n const renderAverageKmsPreview = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {\r\n row.useContractId &&\r\n
\r\n
\r\n
\r\n  \r\n {row.averageTargetMonth ? : '-'}\r\n
\r\n \r\n
\r\n
\r\n }\r\n {\r\n !row.useContractId &&\r\n
{'-'}
\r\n }\r\n
\r\n )\r\n }\r\n\r\n const renderProjectionCell = (row: VehicleViewModel) => {\r\n return (\r\n
\r\n {(row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE && row.useContractId && (!row.useContractKmContractual || (row.useContractKmContractual && row.useContractKmContractual == 0))) ?
{'-'}
: <>}\r\n {!row.useContractId ?
{'-'}
: <>}\r\n {row.useContractId && row.useContractTypeName === USE_CONTRACT_TYPES.PURCHASE ?
{'-'}
: <>}\r\n {\r\n row.useContractId && row.useContractKmContractual && row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE && row.projection ?\r\n
\r\n
\r\n {/* */}\r\n \r\n
\r\n \r\n
: <>\r\n }\r\n {row.useContractId && row.useContractKmContractual && row.useContractTypeName !== USE_CONTRACT_TYPES.PURCHASE\r\n && row.projection && (row.projectionExceeded ?? 0) > 0 ?\r\n
\r\n {/* {t('common.exceeded')} */}\r\n \r\n \r\n
: <>\r\n }\r\n
)\r\n }\r\n\r\n\r\n const formatTotalMinutes = (time: number) => {\r\n const diffInTime = time * 60;\r\n const hours = Math.floor(diffInTime / (3600))\r\n const minutes = Math.floor((diffInTime - (hours * 3600)) / 60);\r\n const seconds = Math.round((diffInTime - (hours * 3600 ) - (minutes * 60)));\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} h`;\r\n }\r\n\r\n const calcPenaltyTotal = (totalKms: number, totalPenalty: number) => {\r\n return totalKms > 0 ? (totalPenalty / totalKms) : totalPenalty;\r\n }\r\n\r\n const renderPathCell = (row: VehicleViewModel) => {\r\n const ecoValue = row.totalKms && row.totalPenalty ? calcPenaltyTotal(row.totalKms, row.totalPenalty) : 0;\r\n\r\n return (\r\n
\r\n {row.trackingDeviceId && !row.gpsDataHydrated\r\n ? \r\n : (row.totalKms || row.totalMinutes || ecoValue)\r\n ? <>
\r\n \r\n
\r\n \r\n
\r\n {row.totalMinutes ? formatTotalMinutes(row.totalMinutes) : 0 + ' h'}\r\n
\r\n \r\n
\r\n {row.totalIdling ? formatTotalMinutes(row.totalIdling / 60) : 0 + ' h'}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n :
{' - '}
\r\n }\r\n
)\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n renderCell: renderImageCell,\r\n width: 90,\r\n hideOn: ['sm', 'md'],\r\n onlyImageColumn: true\r\n },\r\n {\r\n name: t('vehicles_mileage.list.vehicle'),\r\n renderCell: renderDescCell,\r\n onSearch: onTableFilter,\r\n searchField: 'v.registration_number'\r\n },\r\n {\r\n name: t('common.type_funding'),\r\n renderCell: renderTypeContractCell,\r\n onSearch: onTableFilter,\r\n searchField: 'use_contract_info.name',\r\n hideOn: ['sm', 'md', 'lg', 'xl'],\r\n width: 'fill'\r\n },\r\n {\r\n name: t('vehicles_mileage.list.kilometers'),\r\n renderCell: renderKilometersCell,\r\n hideOn: ['sm', 'md', 'lg'],\r\n onSearch: onTableFilter,\r\n searchField: 'use_contract_info.id is not null desc, case when use_contract_info.id is not null then coalesce(v.current_kilometers,0) else 0 end @orderBy',\r\n },\r\n {\r\n name: t('vehicles_mileage.list.average_kms_preview'),\r\n renderCell: (row: VehicleViewModel) => renderContractCell(row), //Boolean(row.useContractId) ? renderContractCell(row) : renderAverageKmsPreview(row),\r\n onSearch: onTableFilter,\r\n searchField: 'use_contract_info.id is not null desc, case when use_contract_info.id is not null then coalesce(use_contract_info_helper_order.verified_value, -1) else 0 end @orderBy',\r\n hideOn: ['sm', 'md'],\r\n width: 'fill'\r\n },\r\n {\r\n name: t('vehicles_mileage.list.projection'),\r\n renderCell: renderProjectionCell,\r\n onSearch: onTableFilter,\r\n searchField: 'projection',\r\n hideOn: ['sm', 'md'],\r\n width: 'fill'\r\n }\r\n ];\r\n\r\n if (hasGpsReadPolicy && company?.trackingProvider && company?.trackingProvider !== TrackingProvider.NONE) {\r\n tableColumns.push({\r\n name: t('vehicles_mileage.list.path') + ' (' + t('vehicles_mileage.list.gps') + ')',\r\n renderCell: renderPathCell,\r\n hideOn: ['sm', 'md'],\r\n width: 'fill'\r\n })\r\n }\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/vehicles/${type}/${id}/informations/list/undefined/undefined/undefined/undefined/${'vehicles-mileage'}`);\r\n } else {\r\n history.push(`/vehicles/${type}`);\r\n }\r\n }\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = currentPage;\r\n saveFiltersOnCache(filters);\r\n\r\n if (event.ctrlKey) {\r\n window.open(`vehicles/details/${id}`, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('VEHICLESMILEAGEFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n setPageLoaded(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (pageLoaded) {\r\n getData();\r\n }\r\n }, [criteria]);\r\n\r\n useEffect(() => {\r\n if (!vehicles[0]?.gpsDataHydrated) {\r\n hydrateGpsData();\r\n }\r\n }, [vehicles]);\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('VEHICLESMILEAGEFILTER')\r\n if (cachedFilters != null) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n updateTotalFilters(f);\r\n criteria.registrationNumber = f.registrationNumber;\r\n criteria.registrationDate = f.registrationDate;\r\n criteria.segmentId = f.segmentId;\r\n criteria.driverId = f.driverId;\r\n criteria.useContractTypeId = f.useContractTypeId;\r\n criteria.useContractActive = f.useContractActive;\r\n criteria.useContractEndsAfter = f.useContractEndsAfter;\r\n criteria.useContractEndsBefore = f.useContractEndsBefore;\r\n criteria.inactives = f.inactives;\r\n criteria.projectionsExceeded = f.projectionsExceeded;\r\n criteria.costsEndDate = defaultcostsEndDate;\r\n criteria.pathStartDate = f.pathStartDate;\r\n criteria.pathEndDate = f.pathEndDate;\r\n\r\n if (isOnLoad && f.page) {\r\n setCurrentPage(f.page);\r\n criteria.page = f.page\r\n } else {\r\n setCurrentPage(1);\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.registrationNumber) {\r\n total++;\r\n }\r\n\r\n if (f.registrationDate) {\r\n total++;\r\n }\r\n\r\n if (f.segmentId && f.segmentId.length > 0) {\r\n total++;\r\n }\r\n\r\n if (f.useContractTypeId) {\r\n total++;\r\n }\r\n\r\n if (f.useContractActive != undefined) {\r\n total++;\r\n }\r\n\r\n if (f.useContractEndsAfter || f.useContractEndsBefore) {\r\n total++;\r\n }\r\n\r\n if (f.inactives) {\r\n total++;\r\n }\r\n\r\n if (f.projectionsExceeded) {\r\n total++;\r\n }\r\n\r\n if (f.pathStartDate || f.pathEndDate) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const renderCounterBoxes = () => {\r\n return
\r\n {counters && renderBox(CarIcon, t('vehicles_mileage.list.number_vehicles'), counters.numberVehicles ?? 0)}\r\n {counters && renderBox(MediaIcon, t('vehicles_mileage.list.number_vehicles_exceeded'), counters.numberVehiclesExceeded ?? 0)}\r\n {counters && renderBox(AlertIcon, t('vehicles_mileage.list.kms_exceeded'), counters.kmsExceeded ?? 0, false, '', true)}\r\n \r\n
\r\n }\r\n\r\n const renderBox = (icon: any, label: string, counter: number, isMoney?: boolean, tooltip?: string, isKm?: boolean) => {\r\n return \r\n }\r\n\r\n const getVehiclesMileageReport = async () => {\r\n Loading.show();\r\n try {\r\n criteria.hasGpsReadPolicy = hasGpsReadPolicy;\r\n const report = await VehiclesService.getVehiclesMileageReport(criteria);\r\n const title = t('menu.vehicles_mileage');\r\n saveAs(report, `${title}_${moment(new Date()).format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);\r\n Loading.hide();\r\n } catch (error) {\r\n Loading.hide();\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES, `Couldn't get vehicles mileage report`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n getVehiclesMileageReport()}>\r\n {t('vehicles_mileage.list.export_excel')}\r\n \r\n \r\n }>\r\n
\r\n \r\n
\r\n
\r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n showTrajectDatesFilter={Boolean(hasGpsReadPolicy && company?.trackingProvider && company?.trackingProvider !== TrackingProvider.NONE)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n \r\n
\r\n\r\n { filters.registrationNumber = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.segmentName,\r\n label: t('vehicle.type'),\r\n onRemove: () => { filters.segmentId = filters.segmentName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.driverName,\r\n label: t('common.state'),\r\n onRemove: () => { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.useContractTypeName,\r\n label: t('common.type_funding'),\r\n onRemove: () => { filters.useContractTypeId = filters.useContractTypeName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.useContractActive == undefined ? undefined : (filters.useContractActive ? <>{t('contracts.states.in_progress')}\r\n : <>{t('contracts.states.expired')}),\r\n label: t('common.state'),\r\n onRemove: () => { filters.useContractActive = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.useContractEndsBefore && filters.useContractEndsAfter ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.useContractEndsAfter ? <>{t('common.range.from')} \r\n : filters.useContractEndsBefore ? <>{t('common.range.to')} : undefined,\r\n label: t('contracts.use_contract.expiration_date'),\r\n onRemove: () => { filters.useContractEndsBefore = filters.useContractEndsAfter = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.inactives ? t('common.yes') : '',\r\n label: t('vehicle.inactives'),\r\n onRemove: () => { filters.inactives = false; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.projectionsExceeded ? t('common.yes') : '',\r\n label: t('vehicles_mileage.projections_exceeded'),\r\n onRemove: () => { filters.projectionsExceeded = false; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.pathStartDate && filters.pathEndDate ? <>{t('common.range.from')} {t('common.range.to').toLowerCase()} \r\n : filters.pathStartDate ? <>{t('common.range.from')} \r\n : filters.pathEndDate ? <>{t('common.range.to')} : undefined,\r\n label: t('vehicles_mileage.list.path_date'),\r\n onRemove: () => { filters.pathStartDate = filters.pathEndDate = undefined; onChangeFilters(filters) }\r\n },\r\n ]} />\r\n\r\n {counters && renderCounterBoxes()}\r\n\r\n \r\n onRowClick(event, row.id)}\r\n onHref={row => `vehicles/details/${row.id}`}\r\n allowHover={true}\r\n initialSearch={{ colField: 'v.registration_number', isOrderAsc: true }}\r\n />\r\n \r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default VehiclesMileageScreen;","import { FeatureGroup } from 'react-leaflet';\r\nimport { EditControl } from 'react-leaflet-draw';\r\n\r\ntype Props = {\r\n onCreated?: (area: LocationArea) => void;\r\n onDrawStart?: () => void;\r\n onDrawStop?: () => void;\r\n};\r\n\r\nexport type LocationArea = {\r\n radius: number;\r\n mRadius: number;\r\n latitude: number;\r\n longitude: number;\r\n};\r\n\r\nconst DrawTools = ({ onCreated, onDrawStart, onDrawStop }: Props) => {\r\n const _onCreated = (e: any) => {\r\n const layer = e.layer;\r\n if (onCreated) {\r\n onCreated({ mRadius: layer._mRadius, radius: layer._radius, latitude: layer._latlng.lat, longitude: layer._latlng.lng });\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DrawTools;\r\n","import Http from '../../common/services/Http';\r\nimport { HotSpotDto } from './models/HotSpotDto';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\n\r\nclass HotSpotsService {\r\n public getById(id: string) {\r\n return Http.get('hotspots/' + id);\r\n }\r\n\r\n public getMyHotSpots() {\r\n return Http.get('hotspots/getMyHotSpots', {});\r\n }\r\n\r\n public create(model: HotSpotDto) {\r\n return Http.post('hotspots', model);\r\n }\r\n\r\n public remove(model: HotSpotDto) {\r\n return Http.put(`hotspots/${model.id}/deactivate`, model);\r\n }\r\n\r\n public select(model: HotSpotDto) {\r\n return Http.put(`hotspots/select`, model);\r\n }\r\n\r\n public deselect() {\r\n return Http.put(`hotspots/deselect`, {});\r\n }\r\n}\r\n\r\nexport default new HotSpotsService();\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Modal from 'react-modal';\r\nimport styles from './HotSpotModal.module.scss';\r\nimport Label from 'common/components/label/Label';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { HotSpotDto } from 'api/hotSpots/models/HotSpotDto';\r\nimport { useForm } from 'react-hook-form';\r\nimport Loading from 'common/services/Loading';\r\nimport HotSpotsService from 'api/hotSpots/HotSpotsService';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Logger from 'common/services/Logger';\r\nimport { DEFAULT_INPUT_RULES_WITH_REQUIRED, LOGGER_LOG_TYPE } from 'Config';\r\nimport Input from 'common/components/input/Input';\r\nimport InputError from 'common/components/inputError/InputError';\r\n\r\ntype Props = {\r\n show: boolean;\r\n onYes: (hotSpot: HotSpotDto) => void;\r\n onNo: () => void;\r\n latitude: number,\r\n longitude: number,\r\n radius: number,\r\n};\r\n\r\nconst HotSpotModal: React.FC = ({ latitude, longitude, radius, show, onYes, onNo }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [hotSpot] = useState({\r\n id: '',\r\n name: '',\r\n latitude: latitude,\r\n longitude: longitude,\r\n radius: radius\r\n });\r\n const form = useForm({ shouldUnregister: false, defaultValues: { ...hotSpot } });\r\n const { register, handleSubmit, errors } = form;\r\n\r\n const customStyles = {\r\n content: {\r\n top: '15%',\r\n left: '35%',\r\n right: '35%',\r\n bottom: 'auto',\r\n backgroundClip: 'padding-box',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid transparent',\r\n borderRadius: '4px',\r\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',\r\n outline: '0 none',\r\n padding: '1.5em'\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n zIndex:1000,\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\r\n }\r\n };\r\n\r\n const onSubmit = async (formData: HotSpotDto) => {\r\n setIsLoading(true);\r\n\r\n try {\r\n Loading.show();\r\n if (hotSpot) {\r\n hotSpot.latitude = formData.latitude;\r\n hotSpot.longitude = formData.longitude;\r\n hotSpot.name = formData.name;\r\n hotSpot.radius = formData.radius;\r\n hotSpot.id = await HotSpotsService.create(hotSpot);\r\n }\r\n Loading.hide();\r\n addToast(t('common.messages.record_save_success'), {\r\n appearance: 'success',\r\n });\r\n onYes(hotSpot);\r\n } catch (error) {\r\n if (error?.response?.status === 402) {\r\n addToast(t('common.errors.pack_limit_exceeded'), { appearance: 'warning' });\r\n }\r\n else {\r\n addToast(t('common.messages.record_save_error'), {\r\n appearance: 'error',\r\n });\r\n }\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't create location hotspot`, error);\r\n Loading.hide();\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const onError = async () => {\r\n addToast(t('common.errors.required_fields_empty'), { appearance: 'warning' });\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default HotSpotModal;\r\n","import React, { memo, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './VehicleGpsFiltersScreen.module.scss';\r\nimport Button from 'common/components/button/Button';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport Label from 'common/components/label/Label';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport Select from 'common/components/select/Select';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport Input from 'common/components/input/Input';\r\nimport DriversService from 'api/drivers/DriversService';\r\n\r\nexport interface Filters {\r\n registrationNumber?: string;\r\n driverId?: string;\r\n driverName?: string;\r\n ignition?: boolean;\r\n}\r\n\r\ntype Props = {\r\n filters: Filters;\r\n onChange: (filters: Filters) => void;\r\n onFilter: (filters: Filters) => void;\r\n}\r\n\r\nconst VehicleGpsFiltersScreen: React.FC = ({ filters, onChange, onFilter }: Props) => {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({ shouldUnregister: false, shouldFocusError: true, defaultValues: filters });\r\n const { getValues, setValue, reset, watch, control } = form;\r\n\r\n const [driversOptions, setDriversOptions] = useState([]);\r\n const [selectIgnition, setSelectIgnition] = useState();\r\n\r\n const getData = async () => {\r\n const [\r\n drivers\r\n ] = await Promise.all([\r\n DriversService.catalog()\r\n ]);\r\n setDriversOptions(drivers);\r\n }\r\n\r\n useEffect(() => {\r\n if (form.getValues('ignition') != undefined) {\r\n setSelectIgnition(form.getValues('ignition'));\r\n }\r\n getData();\r\n }, []);\r\n\r\n const clearFilters = () => {\r\n reset({\r\n registrationNumber: undefined,\r\n driverId: undefined,\r\n ignition: undefined\r\n });\r\n onInputChange();\r\n onSubmit(getValues());\r\n }\r\n\r\n const onSubmit = (f: Filters) => {\r\n onFilter(f);\r\n }\r\n\r\n const onInputChange = () => {\r\n onChange(getValues());\r\n }\r\n\r\n const onSelectIgnition = (status: boolean) => {\r\n setSelectIgnition(selectIgnition == status ? undefined : status);\r\n setValue('ignition', selectIgnition == status ? undefined : status);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValue('registrationNumber', e.currentTarget.value != '' ? e.currentTarget.value : null);\r\n onInputChange();\r\n }}\r\n placeholder={t('vehicle.registration')}\r\n autoComplete='off'\r\n defaultValue={watch('registrationNumber')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n return (\r\n {\r\n onSelectChange(data?.value ?? null);\r\n setValue('driverName', data?.label ?? null);\r\n onInputChange();\r\n }}\r\n value={driversOptions.find(x => x.value === value) ? { label: driversOptions.find(x => x.value === value)?.label ?? '', value: value } : null}\r\n />\r\n );\r\n }}\r\n control={control}\r\n name=\"driverId\"\r\n defaultValue={getValues('driverId')} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
onSelectIgnition(true)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('vehicle.ignition.ON')}\r\n
\r\n
\r\n
\r\n
onSelectIgnition(false)} style={{ width: '50%' }}>\r\n
\r\n
\r\n {t('vehicle.ignition.OFF')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(VehicleGpsFiltersScreen);","import { useMapEvents } from 'react-leaflet';\r\n\r\nexport type Props = {\r\n onZoomChange: (level : number) => void;\r\n};\r\n\r\nconst ZoomLevelControl = ({ onZoomChange }: Props) => {\r\n const mapEvents = useMapEvents({\r\n zoomend: () => {\r\n onZoomChange(mapEvents.getZoom());\r\n },\r\n });\r\n\r\n return <>\r\n}\r\n\r\nexport default ZoomLevelControl;","import ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './VehiclesGpsScreen.module.scss';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { Circle, MapContainer, TileLayer } from 'react-leaflet';\r\nimport L, { LatLngLiteral, Marker } from 'leaflet';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport Box from 'common/components/box/Box';\r\nimport DrawTools, { LocationArea } from 'common/components/maps/DrawTools';\r\nimport Loading from 'common/services/Loading';\r\nimport { TrackingItemDto, TrackingPointItemDto } from 'api/tracking/models/TrackingItemDto';\r\nimport TrackingVehicleSearchCriteria from 'api/tracking/models/TrackingVehicleSearchCriteria';\r\nimport TrackingService from 'api/tracking/TrackingService';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { LOGGER_LOG_TYPE, removeAccents } from 'Config';\r\nimport RoutingMachine from 'common/components/maps/RoutineMachine';\r\nimport { FaCircle, FaTrashAlt } from 'react-icons/fa';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport HotSpotModal from './components/hotSpotModal/HotSpotModal';\r\nimport { SelectValueLabel } from 'common/types/SelectValueLabel';\r\nimport { HotSpotDto } from 'api/hotSpots/models/HotSpotDto';\r\nimport HotSpotsService from 'api/hotSpots/HotSpotsService';\r\nimport { useForm } from 'react-hook-form';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Button from 'common/components/button/Button';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport drawLocales, { Language } from 'leaflet-draw-locales';\r\nimport Label from 'common/components/label/Label';\r\nimport FilterList from 'common/components/filterList/FilterList';\r\nimport CurrentLocation from './components/currentLocation/CurrentLocation';\r\nimport MarkerPopup from './components/markerPopup/MarkerPopup';\r\nimport RecenterMap from './components/recenterMap/RecenterMap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport VehicleGpsFiltersScreen, { Filters } from './components/filters/VehicleGpsFiltersScreen';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport Popover from 'common/components/popover/Popover';\r\nimport FiltersIcon from 'assets/svg/desktop_filtres.svg';\r\nimport colors from 'styles/export/colors.module.scss';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport ZoomLevelControl from 'common/components/maps/ZoomLevelControl';\r\nimport InfiniteScroll from 'react-infinite-scroll-component';\r\n\r\ninterface Form {\r\n hotSpotId: string;\r\n}\r\n\r\n\r\n\r\nconst VehiclesGpsScreen = () => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const [refresh, setRefresh] = useState(1);\r\n const [area, setArea] = useState(null);\r\n const [drawingArea, setDrawingArea] = useState();\r\n const [points, setPoints] = useState([]);\r\n const [pointsInfo, setPointsInfo] = useState([]);\r\n const [pointsOnMapInfo, setPointsOnMapInfo] = useState([]);\r\n\r\n const [selectedPoint, setSelectedPoint] = useState();\r\n const [showSaveAreaModal, setShowSaveAreaModal] = useState(false);\r\n const imageCacheKey = useRef(new Date().getTime());\r\n const [hotSpot, setHotSpot] = useState(null);\r\n const [hotSpots, setHotSpots] = useState([]);\r\n const [currentPosition, setCurrentPosition] = useState();\r\n const userProfile = useSelector(state => state.authentication.profile);\r\n const form = useForm
({ shouldUnregister: false, shouldFocusError: true });\r\n const { setValue } = form;\r\n const { addToast } = useToasts();\r\n const [showRemoveModal, setShowRemoveModal] = useState(false);\r\n const [itemToRemove, setItemToRemove] = useState(null);\r\n const [zoom, setZoom] = useState(12);\r\n const [isDrawing, setIsDrawing] = useState(false);\r\n const [loadedOnce, setLoadedOnce] = useState(false);\r\n const [filters, setFilters] = useState({});\r\n const [filtersTotal, setFiltersTotal] = useState(0);\r\n const [criteria, setCriteria] = useState({ page: 1, itemsPerPage: 7 });\r\n const markers = useRef<{ marker: Marker, vehicleId: string }[]>([]);\r\n const [totalItems, setTotalItems] = useState(0);\r\n\r\n let isSearching = false;\r\n\r\n useEffect(() => {\r\n loadHotSpots(true);\r\n loadFilters();\r\n navigator.geolocation.getCurrentPosition((position: GeolocationPosition) => setCurrentPosition(position));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!area && refresh === 1) {\r\n return;\r\n }\r\n if (area) {\r\n calculateZoom(area.radius * 2);\r\n }\r\n setSelectedPoint(null);\r\n setPointsInfo([])\r\n search(1).catch(console.error);\r\n }, [area]);\r\n\r\n useEffect(() => {\r\n if (loadedOnce) {\r\n if(criteria.page == 1)\r\n search();\r\n else \r\n searchPage()\r\n }\r\n }, [criteria]);\r\n\r\n useEffect(() => {\r\n if (loadedOnce || points.length) {\r\n setRefresh(refresh + 1);\r\n }\r\n }, [points, pointsOnMapInfo]);\r\n\r\n useEffect(() => {\r\n if (hotSpot) {\r\n loadHotSpot();\r\n saveFiltersOnCache({ ...filters, ...{ hotSpotId: hotSpot.value } });\r\n }\r\n }, [hotSpot]);\r\n\r\n useEffect(() => {\r\n if (userProfile) {\r\n drawLocales(userProfile?.languageCode as Language);\r\n }\r\n }, [userProfile]);\r\n\r\n\r\n const loadHotSpots = async (loading: boolean, selectHostSpot?: HotSpotDto) => {\r\n const _hotSpots = await HotSpotsService.getMyHotSpots();\r\n setHotSpots(_hotSpots);\r\n if (!_hotSpots?.length) {\r\n return;\r\n }\r\n\r\n if (loading) {\r\n setLoadedOnce(true);\r\n const selectedHotSpot = _hotSpots.find(x => x.selected);\r\n if (selectedHotSpot) {\r\n setValue('hotSpotId', selectedHotSpot.value);\r\n setHotSpot(selectedHotSpot);\r\n }\r\n else {\r\n loadFilters();\r\n }\r\n }\r\n else if (selectHostSpot) {\r\n const h = _hotSpots.find(x => x.value == selectHostSpot.id);\r\n if (h) {\r\n setValue('hotSpotId', h.value);\r\n setHotSpot(h);\r\n }\r\n }\r\n }\r\n\r\n const loadHotSpot = async () => {\r\n try {\r\n Loading.show();\r\n if (hotSpot) {\r\n const _hotSpot = await HotSpotsService.getById(hotSpot.value);\r\n await HotSpotsService.select(_hotSpot);\r\n const area: LocationArea = { latitude: _hotSpot.latitude, longitude: _hotSpot.longitude, mRadius: _hotSpot.radius, radius: _hotSpot.radius };\r\n setArea(area);\r\n } else {\r\n setArea(null);\r\n }\r\n setRefresh(refresh + 1);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, 'Couldn\\'t get hotspot model list', error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const search = async (page?: number) => {\r\n if (isSearching) {\r\n return;\r\n }\r\n isSearching = true;\r\n\r\n try {\r\n Loading.show();\r\n const _pointsInfo: TrackingItemDto[] = [];\r\n const _points: L.LatLng[] = [];\r\n\r\n const [pointsInfo,pointsInfoMap] = await Promise.all([\r\n TrackingService.getAggregatePositions({\r\n ...criteria,\r\n ...{\r\n latitude: area?.latitude ?? 0,\r\n longitude: area?.longitude ?? 0,\r\n radius: area?.mRadius ?? 0,\r\n page: page ? page : criteria.page\r\n }\r\n }),\r\n TrackingService.getAggregatePositionsPoints({\r\n ...criteria,\r\n ...{\r\n latitude: area?.latitude ?? 0,\r\n longitude: area?.longitude ?? 0,\r\n radius: area?.mRadius ?? 0\r\n }\r\n }),\r\n ]);\r\n\r\n\r\n setLoadedOnce(true);\r\n setTotalItems(pointsInfo.totalItems)\r\n if (pointsInfo?.items.length) {\r\n pointsInfo.items.forEach(i => {\r\n _points.push(L.latLng(i.latitude ?? 0, i.longitude ?? 0));\r\n _pointsInfo.push(i);\r\n });\r\n }\r\n\r\n setPointsInfo(prev => criteria.page === 1 ? _pointsInfo : [...prev, ..._pointsInfo]);\r\n setPoints(_points);\r\n\r\n const _pointsInfoMap: TrackingPointItemDto[] = [];\r\n const _pointsMap: L.LatLng[] = [];\r\n\r\n setLoadedOnce(true);\r\n if (pointsInfoMap?.length) {\r\n pointsInfoMap.forEach(i => {\r\n i.position = L.latLng(i.latitude ?? 0, i.longitude ?? 0)\r\n _pointsMap.push(L.latLng(i.latitude ?? 0, i.longitude ?? 0));\r\n _pointsInfoMap.push(i);\r\n });\r\n }\r\n \r\n setPointsOnMapInfo(_pointsInfoMap);\r\n } catch (err) {\r\n setLoadedOnce(true);\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES_GPS, `Couldn't get points info`, err);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n isSearching = false;\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const searchPage = async (page?: number) => {\r\n if (isSearching) {\r\n return;\r\n }\r\n isSearching = true;\r\n\r\n try {\r\n Loading.show();\r\n const _pointsInfo: TrackingItemDto[] = [];\r\n const _points: L.LatLng[] = [];\r\n\r\n const [pointsInfo] = await Promise.all([\r\n TrackingService.getAggregatePositions({\r\n ...criteria,\r\n ...{\r\n latitude: area?.latitude ?? 0,\r\n longitude: area?.longitude ?? 0,\r\n radius: area?.mRadius ?? 0,\r\n page: page ? page : criteria.page\r\n }\r\n })\r\n ]);\r\n\r\n\r\n setLoadedOnce(true);\r\n setTotalItems(pointsInfo.totalItems)\r\n if (pointsInfo?.items.length) {\r\n pointsInfo.items.forEach(i => {\r\n _points.push(L.latLng(i.latitude ?? 0, i.longitude ?? 0));\r\n _pointsInfo.push(i);\r\n });\r\n }\r\n\r\n setPointsInfo(prev => criteria.page === 1 ? _pointsInfo : [...prev, ..._pointsInfo]);\r\n setPoints(_points);\r\n\r\n } catch (err) {\r\n setLoadedOnce(true);\r\n Logger.error(LOGGER_LOG_TYPE.VEHICLES_GPS, `Couldn't get points info`, err);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n isSearching = false;\r\n Loading.hide();\r\n }\r\n }\r\n\r\n\r\n\r\n const showRemoveItemDialog = async (item: SelectValueLabel) => {\r\n setItemToRemove(item);\r\n setShowRemoveModal(true);\r\n }\r\n\r\n const onCancelRemove = () => {\r\n setItemToRemove(null);\r\n setShowRemoveModal(false);\r\n };\r\n\r\n const onRemove = async () => {\r\n if (itemToRemove === null) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n return;\r\n }\r\n try {\r\n setShowRemoveModal(false);\r\n Loading.show();\r\n if (hotSpot) {\r\n const _hotSpot = await HotSpotsService.getById(hotSpot.value);\r\n await HotSpotsService.remove(_hotSpot);\r\n\r\n addToast(t('common.messages.record_delete_success'), {\r\n appearance: 'success',\r\n });\r\n cleanHotSpot();\r\n\r\n Loading.hide();\r\n }\r\n onCancelRemove();\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.REQUEST, `Couldn't delete companies`, error);\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const cleanHotSpot = async () => {\r\n setArea(null);\r\n setValue('hotSpotId', null);\r\n setHotSpot(null);\r\n loadHotSpots(false);\r\n await HotSpotsService.deselect();\r\n }\r\n\r\n const loadIconColor = (i: number) => {\r\n return pointsInfo[i]?.ignition ? colors.pinIgnitionOn : colors.pinIgnitionOff\r\n }\r\n\r\n const calculateZoom = (distance?: number) => {\r\n if (!distance) {\r\n return;\r\n }\r\n\r\n let z = 15 + Math.round(Math.log2(1.5 / (distance / 1000)));\r\n\r\n const maxZoom = 18;\r\n const minZoom = 5;\r\n if (z > maxZoom) {\r\n z = maxZoom;\r\n } else if (z < minZoom) {\r\n z = minZoom;\r\n }\r\n\r\n setZoom(z);\r\n }\r\n\r\n\r\n const onCurrentLocationPress = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n if (event.ctrlKey) {\r\n window.open(history.location.pathname + '/details/' + id + '/gps', '_blank');\r\n return;\r\n }\r\n history.push(`/vehicles/details/${id}/gps`);\r\n }\r\n }\r\n\r\n const GeoPositions = ({ position }: { position: TrackingItemDto }, key?: number) => {\r\n const { licensePlate, brandName, modelName, driverName, driverPhotoUrl, photoUrl } = position;\r\n \r\n return (\r\n
{\r\n markers.current.find(x => x.vehicleId == position.vehicleId)?.marker.openPopup();\r\n setSelectedPoint(position);\r\n }}>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{licensePlate}
\r\n
\r\n {brandName}\r\n {modelName &&\r\n <> {(' | ')}\r\n {modelName}\r\n \r\n }\r\n
\r\n
\r\n {driverName &&
\r\n
\r\n {driverName ?? '-'}\r\n
\r\n \r\n
}\r\n
\r\n
\r\n\r\n
\r\n
onCurrentLocationPress(e, position.vehicleId)}> \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('VEHICLESGPSFILTER');\r\n if (cachedFilters != null) {\r\n onChangeFilters(JSON.parse(cachedFilters));\r\n }\r\n else {\r\n search();\r\n }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('VEHICLESGPSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onChangeFilters = (f: Filters) => {\r\n updateTotalFilters(f);\r\n criteria.page=1;\r\n criteria.registrationNumber = f.registrationNumber;\r\n criteria.driverId = f.driverId;\r\n criteria.ignition = f.ignition;\r\n\r\n saveFiltersOnCache(f);\r\n setCriteria({ ...criteria });\r\n }\r\n\r\n const updateTotalFilters = (f: Filters) => {\r\n let total = 0;\r\n\r\n if (f.registrationNumber) {\r\n total++;\r\n }\r\n if (f.driverId && f.driverId.length > 0) {\r\n total++;\r\n }\r\n if (f.ignition != undefined) {\r\n total++;\r\n }\r\n\r\n setFiltersTotal(total);\r\n }\r\n\r\n const onCreateArea = (area: LocationArea) => {\r\n setDrawingArea(area);\r\n setShowSaveAreaModal(true);\r\n }\r\n\r\n const onDrawStart = () => {\r\n setIsDrawing(true);\r\n }\r\n\r\n const onDrawStop = () => {\r\n setIsDrawing(false);\r\n }\r\n\r\n const onSaveArea = (hotSpot: HotSpotDto) => {\r\n setIsDrawing(false);\r\n setShowSaveAreaModal(false);\r\n setRefresh(refresh + 1)\r\n loadHotSpots(false, hotSpot);\r\n }\r\n\r\n const getCoordsToCenter = (): LatLngLiteral => {\r\n const coords: LatLngLiteral = { lat: 48.864716, lng: 2.349014 }; // Paris\r\n\r\n if (area) {\r\n coords.lat = area.latitude;\r\n coords.lng = area.longitude;\r\n }\r\n else if (selectedPoint) {\r\n coords.lat = selectedPoint.latitude!;\r\n coords.lng = selectedPoint.longitude!;\r\n }\r\n else if (points?.length) {\r\n coords.lat = points[0].lat;\r\n coords.lng = points[0].lng;\r\n }\r\n else if (currentPosition) {\r\n coords.lat = currentPosition.coords.latitude;\r\n coords.lng = currentPosition.coords.longitude;\r\n }\r\n\r\n return coords;\r\n }\r\n\r\n const onPageChange = () => {\r\n setCriteria(c => ({ ...c, page: c.page + 1 }));\r\n };\r\n\r\n const renderMap = () => {\r\n return \r\n \r\n {area && }\r\n \r\n \r\n \r\n x.position)}\r\n renderInfo={(i: number) => }\r\n loadIconColor={loadIconColor}\r\n setMarkerRef={(i: any, r: any) => {\r\n markers.current[i] = { marker: r, vehicleId: pointsOnMapInfo[i].vehicleId ?? '' };\r\n }}\r\n />\r\n \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n \r\n
\r\n\r\n { filters.registrationNumber = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.driverName,\r\n label: t('vehicle.driver'),\r\n onRemove: () => { filters.driverId = filters.driverName = undefined; onChangeFilters(filters) }\r\n },\r\n {\r\n value: filters.ignition ? t('vehicle.ignition.ON') : filters.ignition == false ? t('vehicle.ignition.OFF') : '',\r\n label: t('common.state'),\r\n onRemove: () => { filters.ignition = undefined; onChangeFilters(filters) }\r\n }\r\n ]} />\r\n\r\n \r\n \r\n \r\n \r\n \r\n input ? removeAccents(candidate.label).toUpperCase().includes(removeAccents(input).toUpperCase()) : true}\r\n onChangeSelect={(data: SelectValueLabel) => {\r\n if (!data?.value) {\r\n cleanHotSpot();\r\n return;\r\n }\r\n setValue('hotSpotId', data ? data.value : null);\r\n setHotSpot(data);\r\n }}\r\n />\r\n \r\n \r\n \r\n {hotSpot && }\r\n \r\n \r\n {\r\n isDrawing || showSaveAreaModal\r\n ? \r\n
\r\n \r\n
\r\n
\r\n : pointsInfo?.length\r\n ? \r\n \r\n \r\n \r\n {pointsInfo.map((info, i) => )}\r\n \r\n \r\n \r\n : \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n \r\n \r\n
\r\n {renderMap()}\r\n
\r\n {drawingArea && showSaveAreaModal && {\r\n setRefresh(refresh + 1)\r\n setIsDrawing(false);\r\n setShowSaveAreaModal(false);\r\n }}\r\n />}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default VehiclesGpsScreen;\r\n","import Http from 'common/services/Http';\r\nimport { AlarmsSearchCriteria, AlarmVehiclesSearchCriteria } from './models/AlarmsSearchCriteria';\r\nimport { AlarmsListItemDto } from './models/AlarmsListItemDto';\r\nimport { AlarmSettingDto, AlarmTypeDto } from './models/AlarmSettingDto';\r\nimport { Paged } from 'api/common/types/Page';\r\nimport { VehicleAlarmListItemDto } from 'api/vehicles/models/VehicleDto';\r\nimport { AlarmTriggerDto } from './models/AlarmTriggersDto';\r\n\r\nclass AlarmsService {\r\n\r\n public getList(criteria: AlarmsSearchCriteria) {\r\n return Http.get>('alarms', criteria);\r\n }\r\n\r\n public getTypes() {\r\n return Http.get('alarms/get-types');\r\n }\r\n\r\n public getById(id: string) {\r\n return Http.get('alarms/' + id);\r\n }\r\n\r\n public create(model: AlarmSettingDto) {\r\n return Http.post('alarms', model);\r\n }\r\n \r\n \r\n public update(model: AlarmSettingDto) {\r\n return Http.put('alarms', model);\r\n }\r\n\r\n public remove(model: AlarmSettingDto) {\r\n return Http.put('alarms/deactivate', model);\r\n }\r\n\r\n \r\n public getVehiclesList(criteria: AlarmVehiclesSearchCriteria) {\r\n return Http.get>('alarms/get-vehicles', criteria);\r\n }\r\n\r\n public getAlarmTriggersList(criteria:AlarmsSearchCriteria){\r\n return Http.get>('alarms/alarm-triggers', criteria);\r\n }\r\n\r\n public getCompanyVehiclesList(){\r\n return Http.get('alarms/get-vehicles-id-by-company');\r\n }\r\n\r\n}\r\n\r\nexport default new AlarmsService();\r\n","import ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenHeaderButton from 'common/components/screenHeader/ScreenHeaderButton';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle'\r\nimport AddIcon from 'assets/svg/desktop_add_new.svg';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useEffect, useMemo, useState } from 'react';\r\nimport styles from './AlarmsListScreen.module.scss';\r\nimport { Filters } from '../alarmsFilters/AlarmsFilters';\r\nimport Box from 'common/components/box/Box';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport { DATE_TIME_FORMAT_DEFAUT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { AlarmsSearchCriteria } from 'api/alarms/models/AlarmsSearchCriteria';\r\nimport { AlarmsListItemDto } from 'api/alarms/models/AlarmsListItemDto';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport toggleSwitchStyle from 'common/components/toggleSwitch/ToggleSwitch.module.scss'\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport Loading from 'common/services/Loading';\r\nimport AlarmsService from 'api/alarms/AlarmsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\n\r\n\r\nconst AlarmsListScreen = () => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { addToast } = useToasts();\r\n\r\n const [alarms, setAlarms] = useState([])\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn:'st.name',\r\n orderBy: 'asc'\r\n });\r\n const [filters, setFilters] = useState({});\r\n\r\n useEffect(() => {\r\n loadFilters();\r\n }, [criteria]);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [alarmsItems] = await Promise.all([\r\n AlarmsService.getList(criteria),\r\n ]);\r\n\r\n if ((alarmsItems?.totalPages ?? 0 > 0) && (alarmsItems.currentPage > (alarmsItems?.totalPages ?? 0))) {\r\n criteria.page = 1;\r\n getData()\r\n return;\r\n }\r\n setAlarms(alarmsItems.items ?? []);\r\n setTotalItems(alarmsItems.totalItems)\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get alarms list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('ALARMSFILTER');\r\n if (cachedFilters != null) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const navigateTo = (type?: string, id?: string) => {\r\n if (id) {\r\n history.push(`/alarms/${type}/${id}`);\r\n } else {\r\n history.push(`/alarms/${type}`);\r\n }\r\n }\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('alarms.list.type'),\r\n onSearch: onTableFilter,\r\n searchField: 'st.type',\r\n renderCell: row => renderTableTypeCell(row.type),\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.list.name'),\r\n renderCell: row => renderTableCell(row.name),\r\n onSearch: onTableFilter,\r\n searchField: 'st.name',\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.list.vehicles'),\r\n renderCell: row => renderTableCell(row.numberVehicles),\r\n onSearch: onTableFilter,\r\n searchField: 'numberVehicles',\r\n hideOn: ['sm', 'md', 'lg'],\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.list.triggers'),\r\n renderCell: row => renderTableCell(row.numberTriggers),\r\n onSearch: onTableFilter,\r\n searchField: 'numberTriggers',\r\n width: 'fill',\r\n hideOn: ['sm', 'md', 'lg']\r\n },\r\n {\r\n name: t('alarms.list.last_modification'),\r\n renderCell: row => row.updatedDate ? : <>-,\r\n onSearch: onTableFilter,\r\n searchField: 'st.updated_date',\r\n width: 'fill',\r\n hideOn: ['sm', 'md']\r\n },\r\n {\r\n name: t('alarms.list.active'),\r\n renderCell: row => renderActiveColTableCell(row.enabled),\r\n onSearch: onTableFilter,\r\n searchField: 'st.enabled',\r\n width: 'fill',\r\n hideOn: ['sm', 'md', 'lg', 'xl']\r\n },\r\n ];\r\n return cols;\r\n }, [onTableFilter]);\r\n\r\n const renderTableCell = (text: string | number) => {\r\n return (\r\n
{text}
\r\n )\r\n }\r\n\r\n const renderTableTypeCell = (text: string | number) => {\r\n return (\r\n
{t('alarms.types.' + text as any)}
\r\n )\r\n }\r\n\r\n const renderActiveColTableCell = (value: boolean) => (\r\n \r\n null}\r\n />\r\n \r\n \r\n )\r\n\r\n const onRowClick = (event: any, id?: string) => {\r\n if (id) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n filters.page = criteria.page;\r\n saveFiltersOnCache(filters);\r\n\r\n if (event.ctrlKey) {\r\n window.open(history.location.pathname + '/details/' + id, '_blank');\r\n return;\r\n }\r\n navigateTo('details', id);\r\n }\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('ALARMSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n criteria.allIn = f.allIn;\r\n\r\n if (isOnLoad && f.page) {\r\n criteria.page = f.page\r\n } else {\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const renderSearchInput = () => {\r\n return \r\n }\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n filters.allIn = value;\r\n saveFiltersOnCache(filters)\r\n setCriteria({ ...criteria, page: 1, allIn: value })\r\n }, 500);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {renderSearchInput()}\r\n \r\n {/* updateTotalFilters(filters)}\r\n content={setIsPopoverOpen => { setIsPopoverOpen(false); onChangeFilters(f) }}\r\n onChange={f => updateTotalFilters(f)}\r\n />}>\r\n {(isPopoverOpen, setIsPopoverOpen) => (\r\n setIsPopoverOpen(!isPopoverOpen)}>\r\n {filtersTotal > 0 &&\r\n
{filtersTotal}
\r\n }\r\n
\r\n )}\r\n */}\r\n navigateTo('new')} />\r\n
\r\n \r\n onRowClick(event, row.id)}\r\n allowHover={true}\r\n onHref={row => `alarms/details/${row.id}`}\r\n initialSearch={{ colField: 'st.name', isOrderAsc: true }}\r\n />\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AlarmsListScreen","import React, { useRef, useState } from 'react';\r\nimport Timekeeper from 'react-timekeeper';\r\nimport { FaRegClock } from 'react-icons/fa';\r\nimport styles from './TimePicker.module.scss';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport { Controller } from 'react-hook-form';\r\nimport dayjs from 'dayjs';\r\n\r\nconst resetTime = (value: Date) => {\r\n return dayjs(value)\r\n .set('hour', 0)\r\n .set('minute', 0)\r\n .set('second', 0)\r\n .set('millisecond', 0)\r\n .toDate(); // Convert back to Date object\r\n}\r\n\r\nconst formatTimeNumber = (n: number) => {\r\n return n.toLocaleString('en-US', {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false\r\n });\r\n}\r\n\r\ntype Props = {\r\n form: any;\r\n isDisabled: boolean;\r\n isClearable?: boolean;\r\n name: string;\r\n timePlaceholder?: string;\r\n className?: string;\r\n minTime?: Date;\r\n onChange?: (date: Date) => void;\r\n onChangeTime?: (date: Date) => void;\r\n};\r\n\r\nconst TimePickerController = ({ form, timePlaceholder, isDisabled, isClearable, className, name, minTime, onChange, onChangeTime }: Props) => {\r\n\r\n const [showTime, setShowTime] = useState(false);\r\n const [reset, setReset] = useState(false); // State to control reset\r\n const ref = useRef(null);\r\n\r\n return (\r\n {\r\n const timeInput = {\r\n hour: value ? dayjs(value).get('hours') : 0,\r\n minute: value ? dayjs(value).get('minutes') : 0\r\n };\r\n\r\n const handleClear = () => {\r\n onChangeCtrl(null); // Clear the value\r\n };\r\n\r\n\r\n return (\r\n
\r\n
\r\n {showTime &&\r\n
\r\n {\r\n setShowTime(false);\r\n\r\n if (!hour || !hour.formatted24 || reset) {\r\n // Reset time if 'reset' is true or no hour is selected\r\n onChangeCtrl(resetTime(value));\r\n setReset(false); // Reset 'reset' state\r\n } else {\r\n const time = hour.formatted24.split(':');\r\n\r\n const newDate = dayjs(value || resetTime(new Date()))\r\n .set('hour', Number(time[0]))\r\n .set('minute', Number(time[1]))\r\n .toDate();\r\n\r\n onChangeCtrl(newDate);\r\n if (onChange) {\r\n onChange(newDate)\r\n }\r\n if (onChangeTime) {\r\n onChangeTime(newDate)\r\n }\r\n }\r\n }}\r\n />\r\n
\r\n }\r\n {!showTime &&\r\n setShowTime(true)}\r\n isClearable={isClearable}\r\n disabled={isDisabled}\r\n icon={}\r\n onClear={handleClear}\r\n ref={ref}\r\n />\r\n }\r\n
\r\n
\r\n );\r\n }}\r\n onFocus={() => (ref.current as any).input.focus()}\r\n control={form.control}\r\n name={name}\r\n defaultValue={form.getValues(name) || undefined}\r\n />\r\n );\r\n};\r\n\r\nexport default TimePickerController;","import Box from '../../../../common/components/box/Box';\r\nimport Logger from '../../../../common/services/Logger';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport styles from './AlarmTab.module.scss';\r\nimport Loading from '../../../../common/services/Loading';\r\nimport AlarmsService from '../../../../api/alarms/AlarmsService';\r\nimport { DEFAULT_LANGUAGE, LOGGER_LOG_TYPE, STORAGE } from '../../../../Config';\r\nimport Button from 'common/components/button/Button';\r\nimport ToggleSwitch from 'common/components/toggleSwitch/ToggleSwitch';\r\nimport Label from 'common/components/label/Label';\r\nimport FormItem from 'common/components/formItem/FormItem';\r\nimport { Col, Row } from 'react-flexbox-grid';\r\nimport InputController from 'common/components/input/InputController';\r\nimport InputError from 'common/components/inputError/InputError';\r\nimport { AlarmSettingDaysOfWeekDto, AlarmSettingDto, AlarmTypeDto, AlarmTypeFieldDto } from 'api/alarms/models/AlarmSettingDto';\r\nimport DrawTools, { LocationArea } from 'common/components/maps/DrawTools';\r\nimport { Circle, MapContainer, TileLayer } from 'react-leaflet';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport TimePickerController from 'common/components/timePicker/TimePickerController';\r\nimport IconBack from 'assets/svg/Arrow-grey.svg';\r\nimport SelectController from 'common/components/select/SelectController';\r\nimport Utils from 'common/services/Utils';\r\nimport InputGroupController from 'common/components/inputGroup/InputGroupController';\r\nimport ZoomLevelControl from 'common/components/maps/ZoomLevelControl';\r\nimport moment from 'moment';\r\nimport Storage from '../../../../common/services/Storage';\r\nimport toggleSwitchStyle from 'common/components/toggleSwitch/ToggleSwitch.module.scss'\r\n\r\ntype Props = {\r\n alarm: AlarmSettingDto | null;\r\n onSelectDayOfWeek: (day: number, value: boolean) => void;\r\n daysOfWeekSelected: AlarmSettingDaysOfWeekDto[];\r\n form: any;\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\n\r\nconst AlarmTab = React.forwardRef(({ alarm, form, daysOfWeekSelected, onSelectDayOfWeek }, ref) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n\r\n const { type } = useParams<{ type: string }>();\r\n const [isDetails, setIsDetails] = useState(type === 'details');\r\n\r\n const [selectedAlarmType, setSelectedAlarmType] = useState();\r\n const [alarmTypes, setAlarmTypes] = useState([]);\r\n\r\n const [area, setArea] = useState();\r\n const [position, setPosition] = useState();\r\n const [zoomDefault, setZoomDefault] = useState(12);\r\n\r\n const { handleSubmit, setValue, errors, register } = form;\r\n\r\n const [refresh, setRefresh] = useState(1);\r\n\r\n const [formValues, setFormValues] = useState({});\r\n const [reloadData, setReloadData] = useState(false);\r\n\r\n const [defaultWeekdays, setDefaultWeekdays] = useState([]);\r\n\r\n const weekdaysChecked = (i: number) => {\r\n return daysOfWeekSelected.map(x=>x.dayOfWeek).includes(i);\r\n };\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const types = await AlarmsService.getTypes();\r\n setAlarmTypes(types);\r\n setReloadData(true);\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get information to create alarm`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const loadData = async () => {\r\n if (!alarm && !Object.keys(formValues).length) { return; } // Verifica se há valores armazenados localmente\r\n\r\n try {\r\n\r\n const alarmData = isDetails ? alarm : formValues;\r\n\r\n if (alarmData.type) {\r\n const typeSelected = alarmTypes.find(x => x.name === alarmData.type);\r\n onChangeType(typeSelected);\r\n }\r\n\r\n const dataMappings = {\r\n id: alarm?.id,\r\n rowVersion: alarm?.rowVersion,\r\n name: alarmData.name,\r\n enabled: alarmData.enabled,\r\n notificationsEnabled: alarmData.notificationsEnabled,\r\n startHour: alarmData.startHour,\r\n stopHour: alarmData.stopHour,\r\n limit: alarmData.limit,\r\n latitude: alarmData.latitude,\r\n longitude: alarmData.longitude,\r\n radius: alarmData.radius,\r\n duration: alarmData.duration\r\n };\r\n\r\n Object.entries(dataMappings).forEach(([key, value]) => setValue(key, value));\r\n\r\n if (alarmData.latitude && alarmData.longitude && alarmData.radius) {\r\n const areaAux = { latitude: alarmData.latitude, longitude: alarmData.longitude, mRadius: alarmData.radius, radius: alarmData.radius };\r\n onCreateArea(areaAux);\r\n }\r\n setZoomDefault(alarmData.zoom ?? zoomDefault);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't load alarm information`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n }\r\n }\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(`/alarms/${typeUrl}/${id}`);\r\n // setIsDetails(typeUrl === 'details');\r\n } else {\r\n history.push(`/alarms`);\r\n }\r\n }\r\n\r\n const onChangeType = (at?: AlarmTypeDto) => {\r\n clearForm();\r\n setSelectedAlarmType(at);\r\n form.setValue('type', at ? at.name : undefined);\r\n }\r\n\r\n const clearForm = () => {\r\n setValue('rowVersion', alarm?.rowVersion);\r\n setValue('type', undefined);\r\n setValue('name', '');\r\n setValue('enabled', false);\r\n setValue('notificationsEnabled', false);\r\n setValue('startHour', undefined);\r\n setValue('stopHour', undefined);\r\n setValue('limit', undefined);\r\n setValue('latitude', undefined);\r\n setValue('longitude', undefined);\r\n setValue('radius', undefined);\r\n };\r\n\r\n const clearArea = () => {\r\n setArea(undefined);\r\n setValue('latitude', '');\r\n setValue('longitude', '');\r\n setValue('radius', '');\r\n }\r\n\r\n const onCreateArea = (a: LocationArea) => {\r\n setArea(a);\r\n setValue('latitude', a.latitude);\r\n setValue('longitude', a.longitude);\r\n setValue('radius', a.mRadius);\r\n }\r\n\r\n const setCurrentPosition = (p: GeolocationPosition) => {\r\n setPosition(p);\r\n setRefresh(refresh + 1);\r\n }\r\n\r\n const onChangeCoordinates = () => {\r\n if (form.getValues('latitude') && form.getValues('longitude')) {\r\n const p: GeolocationPosition = {\r\n coords: {\r\n latitude: form.getValues('latitude'),\r\n longitude: form.getValues('longitude'),\r\n accuracy: 0,\r\n altitude: null,\r\n altitudeAccuracy: null,\r\n heading: null,\r\n speed: null\r\n },\r\n timestamp: Date.now()\r\n };\r\n setCurrentPosition(p);\r\n setZoomDefault(zoomDefault);\r\n if (form.getValues('radius')) {\r\n setArea({ latitude: form.getValues('latitude'), longitude: form.getValues('longitude'), mRadius: form.getValues('radius'), radius: form.getValues('radius') });\r\n }\r\n }\r\n }\r\n\r\n const renderMap = () => {\r\n return <>\r\n \r\n {zoomDefault && { setZoomDefault(zoom); setValue('zoom', zoom); } } />}\r\n \r\n {area ? :\r\n (isDetails ? <> : )\r\n }\r\n \r\n \r\n }\r\n\r\n const renderForm = (f: AlarmTypeFieldDto) => {\r\n switch (f.name) {\r\n case 'name': return (\r\n \r\n \r\n \r\n !Utils.isStringNullOrEmpty(value), maxLength: 250 }}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n )\r\n case 'start_hour': return (\r\n <>\r\n \r\n \r\n \r\n { defaultWeekdays.map((day, index) => (\r\n \r\n \r\n \r\n \r\n onSelectDayOfWeek(index, e.target.checked)}\r\n disabled={isDetails}\r\n />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n )\r\n case 'stop_hour': return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n )\r\n case 'limit': return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n case 'latitude': case 'longitude': return (\r\n \r\n \r\n {\r\n if (e.key === 'Enter') {\r\n onChangeCoordinates();\r\n }\r\n }}\r\n onBlur={() => {\r\n onChangeCoordinates();\r\n }}\r\n />\r\n \r\n \r\n )\r\n case 'duration': return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n case 'radius': return (<>\r\n \r\n \r\n {\r\n if (e.key === 'Enter') {\r\n onChangeCoordinates();\r\n }\r\n }}\r\n onBlur={() => {\r\n onChangeCoordinates();\r\n }}\r\n />\r\n\r\n \r\n \r\n { !isDetails && \r\n
\r\n \r\n {t('common.clear')}\r\n \r\n
\r\n }\r\n\r\n \r\n \r\n {renderMap()}\r\n \r\n \r\n )\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n navigator.geolocation.getCurrentPosition((x: GeolocationPosition) => setCurrentPosition(x));\r\n }, []);\r\n\r\n useEffect(() => {\r\n setIsDetails(type === 'details');\r\n setDefaultWeekdays(Array(... new Array(7)).map(function (_, i) {\r\n moment.locale(Storage.get(STORAGE.CURRENT_LOCALE) ?? DEFAULT_LANGUAGE,{ week: { dow: 0 } });\r\n return moment().startOf('week').weekday(i).format('ddd');\r\n }));\r\n // Armazena os valores do formulário quando a guia mudar\r\n if (type !== 'details') {\r\n setFormValues(form.getValues());\r\n }\r\n }, [type]);\r\n\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, [alarm, reloadData]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {type === 'new' && <> navigateTo()} /> {t('alarms.new')}}\r\n {type == 'edit' && <> navigateTo()} /> {t('alarms.edit')}}\r\n {type == 'details' && <> navigateTo()} /> {t('alarms.details')}}\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n ({\r\n value: x.name,\r\n label: t('alarms.types.' + x.name as any)\r\n })).sort((a, b) => a.label.localeCompare(b.label))}\r\n isDisabled={isDetails}\r\n rules={{ required: !isDetails }}\r\n onChange={(x: any) => {\r\n const selected = x ? alarmTypes.find(y => y.name === x.value) : undefined;\r\n onChangeType(selected);\r\n }}\r\n\r\n />\r\n {!isDetails && }\r\n \r\n \r\n \r\n\r\n \r\n {selectedAlarmType?.fields.map(renderForm)}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n});\r\n\r\nexport default AlarmTab;","import Box from '../../../../common/components/box/Box';\r\nimport ScreenTitle from '../../../../common/components/screenTitle/ScreenTitle';\r\nimport Logger from '../../../../common/services/Logger';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport styles from './VehiclesTab.module.scss';\r\nimport toggleSwitchStyle from 'common/components/toggleSwitch/ToggleSwitch.module.scss'\r\nimport Loading from '../../../../common/services/Loading';\r\nimport { DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from '../../../../Config';\r\nimport InputSearch from 'common/components/inputSearch/InputSearch';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport { VehicleAlarmListItemDto } from 'api/vehicles/models/VehicleDto';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { AlarmSettingVehicleDto } from 'api/alarms/models/AlarmSettingDto';\r\nimport AlarmsService from 'api/alarms/AlarmsService';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AlarmVehiclesSearchCriteria } from 'api/alarms/models/AlarmsSearchCriteria';\r\nimport { useDebouncedCallback } from 'use-debounce/lib';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport AvatarWithText from 'common/components/avatar/AvatarWithText';\r\n\r\ntype Props = {\r\n vehiclesSelected: AlarmSettingVehicleDto[];\r\n onSelectAllVehicles: (ids: AlarmSettingVehicleDto[]) => void\r\n onSelectVehicle: (ids: string, value: boolean) => void;\r\n allVehiclesSelected: boolean,\r\n setAllVehiclesSelected: (value: boolean) => void;\r\n}\r\n\r\nconst VehiclesTab = ({ vehiclesSelected, onSelectAllVehicles, onSelectVehicle, allVehiclesSelected, setAllVehiclesSelected }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const { type, alarmId } = useParams<{ type: string, alarmId: string }>();\r\n const isDetails = type === 'details';\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'v.registration_number',\r\n orderBy: 'asc',\r\n hasGps: true,\r\n alarmId: alarmId\r\n });\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [vehicles, setVehicles] = useState([]);\r\n const imageCacheKey = useRef(new Date().getTime());\r\n const [allVehiclesIds, setAllVehiclesIds] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [criteria]);\r\n\r\n useEffect(() => {\r\n setAllVehiclesSelected(totalItems == vehiclesSelected.length)\r\n }, [vehiclesSelected]);\r\n\r\n useEffect(() => {\r\n try {\r\n Loading.show();\r\n AlarmsService.getCompanyVehiclesList().then(res => {\r\n setAllVehiclesIds(res);\r\n })\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get all cars ids for alarm page`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n }\r\n\r\n }, []);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n const result = await AlarmsService.getVehiclesList(criteria);\r\n setTotalItems(result.totalItems)\r\n setAllVehiclesSelected(result.totalItems == vehiclesSelected.length)\r\n\r\n const updatedVehicles = result.items.map(x => {\r\n const isSelected = vehiclesSelected?.find(selectedVehicle => selectedVehicle.vehicleId === x.trackingDeviceId) != null;\r\n return { ...x, active: isSelected };\r\n });\r\n\r\n setVehicles(updatedVehicles);\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get information to create alarm`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const renderVehicleCell = (row: VehicleAlarmListItemDto) => {\r\n return (
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{row.registrationNumber}
\r\n
{row.vehicleBrandName + (' | ') + row.vehicleModelName}
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const onCheckVehicle = async (vehicleId: string, isToAdd?: boolean) => {\r\n onSelectVehicle(vehicleId, isToAdd ?? false);\r\n };\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = [\r\n {\r\n name: t('alarms.vehicles_tab.vehicle'),\r\n onSearch: onTableFilter,\r\n searchField: 'v.registration_number',\r\n renderCell: renderVehicleCell,\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.vehicles_tab.responsible'),\r\n renderCell: row =>
\r\n
{row.driverName || '-'}
\r\n
,\r\n width: 'fill',\r\n onSearch: onTableFilter,\r\n hideOn: ['sm'],\r\n searchField: 'driverName'\r\n },\r\n {\r\n name: t('alarms.vehicles_tab.notifications'),\r\n renderCell: row =>
{row.notificationsTotal}
,\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.vehicles_tab.active'),\r\n renderCell: row =>
\r\n \r\n {\r\n onCheckVehicle(row.trackingDeviceId, e.target.checked);\r\n row.active = !row.active;\r\n }}\r\n disabled={isDetails}\r\n />\r\n \r\n \r\n
,\r\n width: 'fill'\r\n }\r\n ];\r\n \r\n\r\n\r\n const debounced = useDebouncedCallback((value: string) => {\r\n setCriteria({ ...criteria, allIn: value, page: 1 })\r\n }, 500);\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n const onAllSelectCheck = (value: boolean) => {\r\n setAllVehiclesSelected(value)\r\n if (value) {\r\n setVehicles(vehicles.map(x => ({ ...x, active: true })))\r\n onSelectAllVehicles(allVehiclesIds.map(x => { return ({ vehicleId: x }) }))\r\n } else {\r\n setVehicles(vehicles.map(x => ({ ...x, active: false })))\r\n onSelectAllVehicles([])\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n { \r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n }\r\n }}\r\n >\r\n
\r\n\r\n
\r\n
\r\n
{t('alarms.vehicles_tab.select_all_vehicles')}
\r\n \r\n {\r\n onAllSelectCheck(!allVehiclesSelected)\r\n }}\r\n disabled={isDetails}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default VehiclesTab;","import Box from '../../../../common/components/box/Box';\r\nimport ScreenTitle from '../../../../common/components/screenTitle/ScreenTitle';\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styles from './NotificationsTab.module.scss';\r\nimport { AlarmTriggerDto } from 'api/alarms/models/AlarmTriggersDto';\r\nimport ListingTable, { ListingTableColumn } from 'common/components/listingTable/ListingTable';\r\nimport DateFormat from 'common/components/dateFormat/dateFormat';\r\nimport { DATE_TIME_FORMAT_DEFAULT, DEFAULT_PAGINATION_ITEMS_PER_PAGE, LOGGER_LOG_TYPE } from 'Config';\r\nimport { AlarmsSearchCriteria } from 'api/alarms/models/AlarmsSearchCriteria';\r\nimport PaginationWithInfo from 'common/components/pagination/PaginationWithInfo';\r\nimport Loading from 'common/services/Loading';\r\nimport AlarmsService from 'api/alarms/AlarmsService';\r\nimport Logger from 'common/services/Logger';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport NoImage from 'assets/img/asset-default-image.png';\r\nimport { FaExternalLinkAlt, FaMapMarkerAlt } from 'react-icons/fa';\r\n\r\ninterface Filters {\r\n page?: number;\r\n}\r\n\r\nexport type Props = {\r\n alarmId: string | undefined\r\n} & React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nconst NotificationsTab = ({ alarmId }: Props) => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n\r\n const [filters, setFilters] = useState({});\r\n const [triggers, setTriggers] = useState([])\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [criteria, setCriteria] = useState({\r\n itemsPerPage: DEFAULT_PAGINATION_ITEMS_PER_PAGE,\r\n page: 1,\r\n orderColumn: 'ti.date',\r\n orderBy: 'desc',\r\n alarmId: alarmId\r\n });\r\n\r\n const imageCacheKey = useRef(new Date().getTime());\r\n\r\n useEffect(() => {\r\n loadFilters()\r\n }, [criteria])\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const [alarmesTriggers] = await Promise.all([\r\n AlarmsService.getAlarmTriggersList(criteria),\r\n ]);\r\n\r\n setTriggers(alarmesTriggers.items ?? []);\r\n setTotalItems(alarmesTriggers.totalItems)\r\n Loading.hide();\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get alarms triggers list`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n }\r\n const loadFilters = () => {\r\n const cachedFilters = localStorage.getItem('ALARMSTRIGGERSFILTER');\r\n if (cachedFilters != null) { onChangeFilters(JSON.parse(cachedFilters), true) }\r\n else { getData() }\r\n }\r\n\r\n const onChangeFilters = (f: Filters, isOnLoad?: boolean) => {\r\n if (isOnLoad && f.page) {\r\n criteria.page = f.page\r\n } else {\r\n criteria.page = 1;\r\n f.page = 1;\r\n }\r\n saveFiltersOnCache(f);\r\n getData();\r\n }\r\n\r\n const saveFiltersOnCache = (f: Filters) => {\r\n setFilters(f);\r\n localStorage.setItem('ALARMSTRIGGERSFILTER', JSON.stringify(f));\r\n }\r\n\r\n const onTableFilter = (field: string, isFilterAsc: boolean) => {\r\n setCriteria({ ...criteria, page: 1, orderBy: (isFilterAsc ? 'asc' : 'desc'), orderColumn: field });\r\n }\r\n\r\n const tableColumns: ListingTableColumn[] = useMemo(() => {\r\n const cols: ListingTableColumn[] = [\r\n {\r\n name: t('alarms.notifications_tab.table.vehicle'),\r\n onSearch: onTableFilter,\r\n searchField: 'v.license_plate',\r\n renderCell: row => renderVehicleCell(row),\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.notifications_tab.table.date'),\r\n renderCell: row => ,\r\n onSearch: onTableFilter,\r\n searchField: 'ti.date',\r\n width: 'fill'\r\n },\r\n {\r\n name: t('alarms.notifications_tab.table.address'),\r\n renderCell: row => renderAddressCell(row),\r\n hideOn: ['sm', 'md', 'lg'],\r\n width: 'fill'\r\n }\r\n ];\r\n return cols;\r\n }, [onTableFilter]);\r\n\r\n const renderVehicleCell = (item: AlarmTriggerDto) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{item.vehicleRegistrationNumber}
\r\n
\r\n {item.vehicleBrand} | {item.vehicleModel}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderAddressCell = (row: AlarmTriggerDto) => {\r\n return (\r\n \r\n \r\n {t('alarms.notifications_tab.table.open_location')}\r\n \r\n \r\n \r\n ({`${row.latitude},${row.longitude}`})\r\n \r\n \r\n )\r\n }\r\n\r\n\r\n const onPageChange = (page: number) => {\r\n criteria.page = page;\r\n getData();\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default NotificationsTab;\r\n","import ScreenContainer from 'common/components/screenContainer/ScreenContainer';\r\nimport ScreenHeader from 'common/components/screenHeader/ScreenHeader';\r\nimport ScreenTitle from 'common/components/screenTitle/ScreenTitle';\r\nimport React, { useEffect, useState } from 'react';\r\nimport Tabs, { TabItem } from 'common/components/tabs/Tabs';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport AlarmTab from './components/alarmTab/AlarmTab';\r\nimport VehiclesTab from './components/vehiclesTab/VehiclesTab';\r\nimport NotificationsTab from './components/notificationsTab/NotificationsTab';\r\nimport Button from 'common/components/button/Button';\r\nimport QuestionYesNo from 'common/components/questionYesNo/QuestionYesNo';\r\nimport styles from './AlarmScreen.module.scss';\r\nimport { Row } from 'react-flexbox-grid';\r\nimport { AlarmSettingDaysOfWeekDto, AlarmSettingDto, AlarmSettingVehicleDto } from 'api/alarms/models/AlarmSettingDto';\r\nimport AlarmsService from 'api/alarms/AlarmsService';\r\nimport { useToasts } from 'react-toast-notifications';\r\nimport Loading from 'common/services/Loading';\r\nimport Logger from 'common/services/Logger';\r\nimport { LOGGER_LOG_TYPE } from 'Config';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nconst AlarmScreen = () => {\r\n const { t } = useTranslation();\r\n const { addToast } = useToasts();\r\n const history = useHistory();\r\n const { alarmId, type } = useParams<{ alarmId: string, type: string }>();\r\n\r\n const [isDetails, setIsDetails] = useState(type === 'details');\r\n const [dialogDeleteItemIsOpen, setDialogDeleteItemIsOpen] = React.useState(false);\r\n const [alarm, setAlarm] = useState(null);\r\n const [allVehiclesSelected, setAllVehiclesSelected] = useState(false);\r\n\r\n const defaultTab = ('alarms');\r\n const [activeTabId, setActiveTabId] = useState(defaultTab);\r\n\r\n const form = useForm({ shouldUnregister: false });\r\n const { handleSubmit } = useForm({ shouldUnregister: false });\r\n\r\n const [selectedVehicles, setSelectedVehicles] = useState([]);\r\n const [selectedDaysOfWeek, setSelectedDaysOfWeek] = useState([]);\r\n const [formHasErrors, setFormHasErros] = useState(false);\r\n\r\n const getData = async () => {\r\n try {\r\n Loading.show();\r\n\r\n const result = alarmId ? await AlarmsService.getById(alarmId) : null;\r\n if (result) {\r\n if (result.duration) {\r\n const hours = Math.floor((result.duration as number) / 60);\r\n const minutes = (result.duration as number) % 60;\r\n result.duration = (hours < 10 ? '0' : '') + hours + ':' + (minutes < 10 ? '0' : '') + minutes;\r\n }\r\n\r\n setAlarm(result);\r\n setSelectedVehicles(result.vehicles ?? []);\r\n setSelectedDaysOfWeek(result.daysOfWeek ?? []);\r\n }\r\n\r\n } catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't get information to create alarm`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n\r\n const onSelectVehicle = (vehicleId: string, isToAdd: boolean) => {\r\n setSelectedVehicles(prev => isToAdd ? [...prev, { vehicleId: vehicleId }] : prev?.filter(x => x.vehicleId !== vehicleId));\r\n }\r\n\r\n const onSelectDayOfWeek = (dayOfWeek: number, isToAdd: boolean) => {\r\n setSelectedDaysOfWeek(prev => isToAdd ? [...prev, { dayOfWeek: dayOfWeek }] : prev?.filter(x => x.dayOfWeek !== dayOfWeek));\r\n }\r\n\r\n const alarmName = form.watch('name');\r\n const tabs: TabItem[] = [\r\n {\r\n id: 'alarms',\r\n title: (!!alarmName && alarmName.trim() !== '') ? alarmName : t('alarms.alarm_tab'),\r\n content: \r\n },\r\n {\r\n id: 'vehicles',\r\n title: t('alarms.vehicles_tab.title'),\r\n content: setSelectedVehicles(value)}\r\n onSelectVehicle={onSelectVehicle}\r\n allVehiclesSelected={allVehiclesSelected}\r\n setAllVehiclesSelected={value => setAllVehiclesSelected(value)}\r\n />\r\n }\r\n ]\r\n\r\n if (type !== 'new') {\r\n tabs.push(\r\n {\r\n id: 'notifications',\r\n title: t('alarms.notifications_tab.title'),\r\n content: \r\n })\r\n }\r\n\r\n const navigateTo = (typeUrl?: string, id?: string) => {\r\n if (typeUrl) {\r\n history.push(`/alarms/${typeUrl}/${id}`);\r\n setIsDetails(typeUrl === 'details');\r\n } else {\r\n history.push(`/alarms`);\r\n }\r\n }\r\n\r\n const removeItem = async (a?: AlarmSettingDto) => {\r\n setDialogDeleteItemIsOpen(false);\r\n if (!a) return;\r\n\r\n try {\r\n Loading.show();\r\n await AlarmsService.remove(a);\r\n addToast(t('common.messages.record_delete_success'), { appearance: 'success' });\r\n navigateTo();\r\n } catch (error) {\r\n addToast(t('common.messages.record_delete_error'), { appearance: 'error' });\r\n } finally {\r\n Loading.hide();\r\n }\r\n };\r\n\r\n const onError = async () => {\r\n addToast(t('common.messages.validate_form'), { appearance: 'warning' });\r\n }\r\n\r\n const handleChangeTab = async (tabId: string) => {\r\n // Dispara a validação do formulário atual\r\n if (type != 'details') {\r\n const isValid = await form.trigger();\r\n setFormHasErros(!isValid);\r\n }\r\n setActiveTabId(tabId);\r\n };\r\n\r\n const onSubmit = async () => {\r\n try {\r\n const isValid = await form.trigger();\r\n\r\n if (!!!isValid || (formHasErrors && activeTabId == 'vehicles')) {\r\n onError();\r\n setActiveTabId(defaultTab);\r\n return;\r\n }\r\n\r\n const formData = form.getValues();\r\n\r\n const model: AlarmSettingDto = {\r\n id: alarmId ?? null,\r\n name: formData.name,\r\n type: formData.type,\r\n startHour: formData.startHour ?? undefined,\r\n stopHour: formData.stopHour ?? undefined,\r\n limit: formData.limit ?? 0,\r\n latitude: formData.latitude ?? undefined,\r\n longitude: formData.longitude ?? undefined,\r\n radius: formData.radius ?? undefined,\r\n zoom: formData.zoom ?? undefined,\r\n duration: formData.duration ?? undefined,\r\n rowVersion: alarm?.rowVersion ?? undefined,\r\n enabled: formData.enabled,\r\n notificationsEnabled: formData.notificationsEnabled ?? false,\r\n vehicles: selectedVehicles,\r\n daysOfWeek: selectedDaysOfWeek\r\n };\r\n\r\n if (model.duration) {\r\n const splittedTime = (model.duration as string).split(':');\r\n const hours = Number(splittedTime[0]);\r\n model.duration = hours * 60 + Number(splittedTime[1]);\r\n }\r\n\r\n Loading.show();\r\n if (alarmId) {\r\n await AlarmsService.update(model);\r\n navigateTo('details', alarmId);\r\n } else {\r\n const id = await AlarmsService.create(model);\r\n navigateTo('details', id);\r\n }\r\n getData();\r\n addToast(t('common.messages.record_save_success'), { appearance: 'success' });\r\n Loading.hide();\r\n }\r\n catch (error) {\r\n Logger.error(LOGGER_LOG_TYPE.ALARMS, `Couldn't save alarm`, error);\r\n addToast(t('common.messages.error_load_info'), { appearance: 'error' });\r\n Loading.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (activeTabId == defaultTab) {\r\n getData();\r\n }\r\n }, [type]);\r\n\r\n\r\n useEffect(() => {\r\n // Verifica se a tab está aberta e se há erros no formulário\r\n if (activeTabId === 'alarms' && formHasErrors) {\r\n const timeoutId = setTimeout(() => {\r\n form.trigger(); // Dispara a validação do formulário para mostrar mensagens de erro\r\n }, 1000);\r\n return () => clearTimeout(timeoutId);\r\n }\r\n\r\n }, [activeTabId]);\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n { handleChangeTab(tId) }}\r\n />\r\n \r\n
\r\n {\r\n if (!!alarmId) {\r\n isDetails ? navigateTo() : navigateTo('details', alarmId);\r\n } else {\r\n history.goBack();\r\n }\r\n }}\r\n text={t('common.cancel')}\r\n />\r\n {!!alarmId && isDetails &&\r\n setDialogDeleteItemIsOpen(true)} />\r\n }\r\n {alarmId && isDetails &&\r\n {\r\n setActiveTabId(defaultTab);\r\n navigateTo('edit', alarmId);\r\n }}\r\n />}\r\n\r\n {!isDetails && }\r\n\r\n {alarm && removeItem(alarm)}\r\n onNo={() => setDialogDeleteItemIsOpen(false)} />}\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AlarmScreen;","import { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom';\r\nimport AuthorizeRoute from './common/routes/AuthorizeRoute';\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './Config';\r\nimport IdentityLoginScreen from './screens/identity/IdentityLoginScreen';\r\nimport IdentityLogoutScreen from './screens/identity/IdentityLogoutScreen';\r\nimport AuthenticatedLayout from './common/layouts//authenticatedLayout/AuthenticatedLayout';\r\n//import ProtectedRoute from './common/routes/ProtectedRoute';\r\nimport AccountScreen from './screens/account/AccountScreen';\r\nimport NotFoundScreen from './screens/errors/NotFoundScreen';\r\nimport VehiclesManagementScreen from 'screens/vehicles-management/VehiclesManagementScreen';\r\nimport PolicyRoute from 'common/routes/PolicyRoute';\r\nimport VehicleScreen from 'screens/vehicle/VehicleScreen';\r\nimport SettingsScreen from 'screens/settings/SettingsScreen';\r\nimport SecurityScreen from 'screens/security/SecurityScreen';\r\nimport ListChargesScreen from 'screens/charges/ListChargesScreen';\r\nimport ChargeScreen from 'screens/vehicle/components/carChargeTab/components/ChargeScreen';\r\nimport CompaniesScreen from 'screens/companies/CompaniesScreen';\r\nimport ImportDataScreen from 'screens/import-data/ImportDataScreen';\r\nimport CalculateMonthlyCostsScreen from 'screens/god-mode/calculate-monthly-costs/CalculateMonthlyCostsScreen';\r\nimport CompanyScreen from 'screens/company/CompanyScreen';\r\nimport DriversScreen from 'screens/drivers/DriversScreen';\r\nimport DriverScreen from 'screens/driver/DriverScreen';\r\nimport VerificationScreen from 'screens/verification/VerificationScreen';\r\nimport AlertsScreen from 'screens/alerts/AlertsScreen';\r\nimport { useSelector } from 'react-redux';\r\nimport { Reducers } from 'store/types';\r\nimport { UserProfile } from 'api/account/models/UserProfile';\r\nimport ForbiddenScreen from 'screens/errors/ForbiddenScreen';\r\nimport UsersService from 'api/users/UsersService';\r\nimport MaintenancesScreen from 'screens/maintenances/MaintenancesScreen';\r\nimport VehiclesScreen from 'screens/vehicles/VehiclesScreen';\r\nimport ReservationScreen from 'screens/reservations/ReservationScreen';\r\nimport DashboardScreen from 'screens/dashboard/DashboardScreen';\r\nimport ImportChargeScreen from 'screens/import-charges/ImportChargeScreen';\r\nimport ImportChargesScreen from 'screens/import-charges/ImportChargesScreen';\r\nimport VehiclesMileageScreen from 'screens/vehicles-mileage/VehiclesMileageScreen';\r\nimport NewAccount from 'screens/new_account/NewAccountScreen';\r\nimport VehiclesGpsScreen from 'screens/vehicles-gps/VehiclesGpsScreen';\r\nimport AlarmsListScreen from 'screens/alarms/components/alarmsList/AlarmsListScreen';\r\nimport AlarmScreen from 'screens/alarms/AlarmScreen';\r\n\r\nconst HomeRedirection = () => {\r\n const loggedUser = useSelector(state => state.authentication.profile);\r\n const policies = loggedUser?.policies || [];\r\n const userIssues = loggedUser?.issues || [];\r\n\r\n if (userIssues.length > 0) {\r\n return \r\n }\r\n else if (UsersService.hasPolicies(policies, ['SETTINGUP_VEHICLES_READ'])) {\r\n return ;\r\n } else if (UsersService.hasPolicies(policies, ['SETTINGUP_COMPANIES_READ', 'SETTINGUP_COMPANIES_WRITE'])) {\r\n return ;\r\n }\r\n\r\n return ;\r\n\r\n}\r\n\r\nconst DefaultRouter = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n ()} />\r\n ()} />\r\n ()} />\r\n ()} />\r\n ()} />\r\n ()} />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Enterprises */}\r\n \r\n {/* Import Data */}\r\n \r\n \r\n \r\n {/* Voitures */}\r\n \r\n \r\n \r\n \r\n {/* Conducteurs */}\r\n \r\n \r\n {/* Frais */}\r\n \r\n \r\n {/* Alertes */}\r\n \r\n {/* Maintenances */}\r\n \r\n {/* Verifications */}\r\n \r\n {/* Reservations*/}\r\n \r\n {/* Utilisateurs */}\r\n \r\n {/* Paramétrages */}\r\n \r\n {/* ImportCharges*/}\r\n\r\n \r\n\r\n \r\n \r\n {/* Admin GodMode */}\r\n \r\n\r\n {/* Alarms */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DefaultRouter;\r\n","import { initGA } from 'common/services/Tracking';\r\nimport { GA } from 'Config';\r\nimport { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { initAuthentication } from './store/authentication/action';\r\n\r\ntype Props = {\r\n children: React.ReactElement;\r\n}\r\n\r\nconst Setup: React.FC = ({ children }: Props) => {\r\n\r\n const dispatch = useDispatch();\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n useEffect(() => {\r\n initGA(GA || '');\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n dispatch(initAuthentication(() => setLoaded(true)));\r\n });\r\n\r\n return loaded ? children : null;\r\n}\r\n\r\nexport default Setup;\r\n","import ReactGA from 'react-ga4';\r\n\r\n\r\nexport const initGA = (trackingID: string) => { \r\n ReactGA.initialize(trackingID); \r\n }\r\n\r\n\r\nexport const PageView = (title? : string) => { \r\n ReactGA.send({ hitType: 'pageview', page: window.location.pathname + window.location.search, title: title });\r\n}\r\n\r\n// export const EventGA = (category: string, action: string, label: string) => {\r\n \r\n// if (label === undefined) {\r\n// return;\r\n// } \r\n// ReactGA.event({\r\n// category: category,\r\n// action: action,\r\n// label: label\r\n// });\r\n// };\r\n\r\n//export type Category = 'LIST_CANDIDATES' | 'EMPLOYEE_OFFER' | 'COMPANIES' | 'OFFER' | 'CV' | 'EDUCATIONAL_ESTABLISHMENT' | 'COMPANY_SEARCH';","import React from 'react';\r\nimport { I18nextProvider } from 'react-i18next';\r\nimport { Provider } from 'react-redux';\r\nimport { ToastProvider } from 'react-toast-notifications';\r\nimport LoadingProvider from './common/components/loading/LoadingProvider';\r\nimport i18n from './common/services/I18n';\r\nimport DefaultRouter from './Router';\r\nimport Setup from './Setup';\r\nimport store from './store/store';\r\nimport {\r\n QueryClient,\r\n QueryClientProvider,\r\n} from '@tanstack/react-query'\r\n\r\nconst queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: Infinity } } });\r\n\r\nconst App: React.FunctionComponent = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import BigNumber from 'bignumber.js';\r\n\r\nexport { }; // this file needs to be a module\r\n\r\nNumber.prototype.plus = function (this: number, b: number): number {\r\n return new BigNumber(this).plus(b).toNumber();\r\n};\r\n\r\nNumber.prototype.minus = function (this: number, b: number): number {\r\n return new BigNumber(this).minus(b).toNumber();\r\n};\r\n\r\nNumber.prototype.multiply = function (this: number, b: number): number {\r\n return new BigNumber(this).multipliedBy(b).toNumber();\r\n};\r\n\r\nNumber.prototype.divide = function (this: number, b: number): number {\r\n return new BigNumber(this).dividedBy(b).toNumber();\r\n};\r\n\r\nNumber.prototype.toBig = function (this: number): BigNumber {\r\n return new BigNumber(this);\r\n};\r\n\r\nArray.prototype.sum = function (this: number[]): number {\r\n return this.map(x => new BigNumber(x)).reduce((a, b) => a.plus(b), new BigNumber(0)).toNumber();\r\n};\r\n","export { }; // this file needs to be a module\r\n\r\nString.prototype.removeAccents = function (this: string): string {\r\n return this.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n}\r\n\r\nString.prototype.isNullOrEmpty = function (this: string): boolean {\r\n return !this;\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './styles/index.scss';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport dayjs from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport './common/extensions/numberExtension';\r\nimport './common/extensions/stringExtension';\r\nimport Modal from 'react-modal';\r\nimport 'moment/locale/fr';\r\nimport 'moment/locale/pt';\r\n\r\nrequire('dayjs/locale/pt')\r\nrequire('dayjs/locale/fr')\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\nModal.setAppElement('#root')\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarVerification_elevation-1__1VScS\",\"elevation-2\":\"CarVerification_elevation-2__xnIGJ\",\"elevation-3\":\"CarVerification_elevation-3__1_-k1\",\"elevation-4\":\"CarVerification_elevation-4__1lgwN\",\"elevation-5\":\"CarVerification_elevation-5__10edh\",\"elevation-6\":\"CarVerification_elevation-6__234e-\",\"elevation-7\":\"CarVerification_elevation-7__11iQo\",\"elevation-8\":\"CarVerification_elevation-8__p-6q7\",\"elevation-9\":\"CarVerification_elevation-9__1Vnae\",\"elevation-10\":\"CarVerification_elevation-10__1sGGL\",\"elevation-11\":\"CarVerification_elevation-11__1G4yt\",\"elevation-12\":\"CarVerification_elevation-12__3xDXj\",\"elevation-13\":\"CarVerification_elevation-13__6eVLp\",\"elevation-14\":\"CarVerification_elevation-14__1svx8\",\"elevation-15\":\"CarVerification_elevation-15__2EvVz\",\"elevation-16\":\"CarVerification_elevation-16__1HMQf\",\"elevation-17\":\"CarVerification_elevation-17__29f6i\",\"elevation-18\":\"CarVerification_elevation-18__3OwWn\",\"elevation-19\":\"CarVerification_elevation-19__1R7Tv\",\"elevation-20\":\"CarVerification_elevation-20__1njb_\",\"elevation-21\":\"CarVerification_elevation-21__1HMPe\",\"elevation-22\":\"CarVerification_elevation-22__quaym\",\"elevation-23\":\"CarVerification_elevation-23__35u8i\",\"elevation-24\":\"CarVerification_elevation-24__2Jh2j\",\"form\":\"CarVerification_form__sUsGP\",\"rootContainer\":\"CarVerification_rootContainer__21WXw\",\"pageNameContainer\":\"CarVerification_pageNameContainer__2PVeC\",\"pageNameContent\":\"CarVerification_pageNameContent__2nsnM\",\"pageNameContentImage\":\"CarVerification_pageNameContentImage__1OJd9\",\"pageNameContentText\":\"CarVerification_pageNameContentText__3kNx8\",\"messageDeleted\":\"CarVerification_messageDeleted__1nJDl\",\"verificationContainer\":\"CarVerification_verificationContainer__mFWm_\",\"containerRight\":\"CarVerification_containerRight__4mB0y\",\"containerRightTitle\":\"CarVerification_containerRightTitle__PTubC\",\"containerRightContent\":\"CarVerification_containerRightContent__8jBS2\",\"containerRightContentLabel\":\"CarVerification_containerRightContentLabel__3Qe5s\",\"containerRightContentInput\":\"CarVerification_containerRightContentInput__F2gBj\",\"containerRightContentTextArea\":\"CarVerification_containerRightContentTextArea__1Xdnl\",\"containerRightContentDate\":\"CarVerification_containerRightContentDate__3Ky3j\",\"containerRightContentDateIcon\":\"CarVerification_containerRightContentDateIcon__2c1n3\",\"col\":\"CarVerification_col__vjcRO\",\"verificationInfos\":\"CarVerification_verificationInfos__1EoVK\",\"imageContainer\":\"CarVerification_imageContainer__1Ox7z\",\"imagePreview\":\"CarVerification_imagePreview__Jy5aH\",\"descriptionInfo\":\"CarVerification_descriptionInfo__2fZXk\",\"descriptionInfoType\":\"CarVerification_descriptionInfoType__2vloG\",\"descriptionInfoZone\":\"CarVerification_descriptionInfoZone__2vUNx\",\"descriptionInfoDescrition\":\"CarVerification_descriptionInfoDescrition__2YWB2\",\"restrained\":\"CarVerification_restrained__1oe0p\",\"scroll\":\"CarVerification_scroll__1jSQo\",\"containerLeft\":\"CarVerification_containerLeft__2XgfA\",\"tableList\":\"CarVerification_tableList__1GPuq\",\"tablePagination\":\"CarVerification_tablePagination__23Krt\",\"buttonContainer\":\"CarVerification_buttonContainer__3bBEO\",\"container\":\"CarVerification_container__3-XMw\",\"containerError\":\"CarVerification_containerError__3mHhZ\",\"containerRemove\":\"CarVerification_containerRemove__2yxXS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"HorizontalMediaSelector_elevation-1___OsjA\",\"elevation-2\":\"HorizontalMediaSelector_elevation-2__3eX7A\",\"elevation-3\":\"HorizontalMediaSelector_elevation-3__2zgnl\",\"elevation-4\":\"HorizontalMediaSelector_elevation-4__2cxCz\",\"elevation-5\":\"HorizontalMediaSelector_elevation-5__K4Bde\",\"elevation-6\":\"HorizontalMediaSelector_elevation-6__Q_O0b\",\"elevation-7\":\"HorizontalMediaSelector_elevation-7__2x669\",\"elevation-8\":\"HorizontalMediaSelector_elevation-8__3jMMo\",\"elevation-9\":\"HorizontalMediaSelector_elevation-9__21ZUH\",\"elevation-10\":\"HorizontalMediaSelector_elevation-10__ZFQGF\",\"elevation-11\":\"HorizontalMediaSelector_elevation-11__3kw-X\",\"elevation-12\":\"HorizontalMediaSelector_elevation-12__2jTCX\",\"elevation-13\":\"HorizontalMediaSelector_elevation-13__19iGY\",\"elevation-14\":\"HorizontalMediaSelector_elevation-14__7WKHD\",\"elevation-15\":\"HorizontalMediaSelector_elevation-15__1CkN-\",\"elevation-16\":\"HorizontalMediaSelector_elevation-16__1beSQ\",\"elevation-17\":\"HorizontalMediaSelector_elevation-17__fpa_e\",\"elevation-18\":\"HorizontalMediaSelector_elevation-18__1K-Zj\",\"elevation-19\":\"HorizontalMediaSelector_elevation-19__1OLtV\",\"elevation-20\":\"HorizontalMediaSelector_elevation-20__3jghH\",\"elevation-21\":\"HorizontalMediaSelector_elevation-21__3mUwB\",\"elevation-22\":\"HorizontalMediaSelector_elevation-22__1p4dw\",\"elevation-23\":\"HorizontalMediaSelector_elevation-23__9IS-r\",\"elevation-24\":\"HorizontalMediaSelector_elevation-24__3nze9\",\"container\":\"HorizontalMediaSelector_container__1DWto\",\"list\":\"HorizontalMediaSelector_list__8Nxpe\",\"addMedia\":\"HorizontalMediaSelector_addMedia__2ZNDD\",\"addMediaIcon\":\"HorizontalMediaSelector_addMediaIcon__3u55q\",\"itemPreview\":\"HorizontalMediaSelector_itemPreview__1c8eB\",\"removeButton\":\"HorizontalMediaSelector_removeButton__3HD11\",\"removeIcon\":\"HorizontalMediaSelector_removeIcon__vbJry\",\"noItemsText\":\"HorizontalMediaSelector_noItemsText__3MKin\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarMonthlyChargesTab_elevation-1__1Psxi\",\"elevation-2\":\"CarMonthlyChargesTab_elevation-2__1WUiW\",\"elevation-3\":\"CarMonthlyChargesTab_elevation-3__sInxs\",\"elevation-4\":\"CarMonthlyChargesTab_elevation-4__soh41\",\"elevation-5\":\"CarMonthlyChargesTab_elevation-5__1GF_V\",\"elevation-6\":\"CarMonthlyChargesTab_elevation-6__fkDh_\",\"elevation-7\":\"CarMonthlyChargesTab_elevation-7__kt9MS\",\"elevation-8\":\"CarMonthlyChargesTab_elevation-8__10UsM\",\"elevation-9\":\"CarMonthlyChargesTab_elevation-9__3Oz8A\",\"elevation-10\":\"CarMonthlyChargesTab_elevation-10__1yHvC\",\"elevation-11\":\"CarMonthlyChargesTab_elevation-11__35cZ6\",\"elevation-12\":\"CarMonthlyChargesTab_elevation-12__3E94f\",\"elevation-13\":\"CarMonthlyChargesTab_elevation-13__sXj6K\",\"elevation-14\":\"CarMonthlyChargesTab_elevation-14__Aq-xO\",\"elevation-15\":\"CarMonthlyChargesTab_elevation-15__2PtV0\",\"elevation-16\":\"CarMonthlyChargesTab_elevation-16__3mCcf\",\"elevation-17\":\"CarMonthlyChargesTab_elevation-17__3yBUb\",\"elevation-18\":\"CarMonthlyChargesTab_elevation-18__PC639\",\"elevation-19\":\"CarMonthlyChargesTab_elevation-19___a-r_\",\"elevation-20\":\"CarMonthlyChargesTab_elevation-20__1QQfE\",\"elevation-21\":\"CarMonthlyChargesTab_elevation-21__2lu7v\",\"elevation-22\":\"CarMonthlyChargesTab_elevation-22__3RIOM\",\"elevation-23\":\"CarMonthlyChargesTab_elevation-23__36Q50\",\"elevation-24\":\"CarMonthlyChargesTab_elevation-24__3fONN\",\"container\":\"CarMonthlyChargesTab_container__2mYKO\",\"tabHeader\":\"CarMonthlyChargesTab_tabHeader__7w2uT\",\"rowFlex\":\"CarMonthlyChargesTab_rowFlex__3oQE4\",\"filtersPopoverContainer\":\"CarMonthlyChargesTab_filtersPopoverContainer__xEYG7\",\"counter\":\"CarMonthlyChargesTab_counter__1oHgh\",\"counterNumber\":\"CarMonthlyChargesTab_counterNumber__2418E\",\"moneyColumn\":\"CarMonthlyChargesTab_moneyColumn__1ohLz\",\"counterList\":\"CarMonthlyChargesTab_counterList__13jFa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleSegmentsDetails_elevation-1__2_qVC\",\"elevation-2\":\"VehicleSegmentsDetails_elevation-2__3d1Qp\",\"elevation-3\":\"VehicleSegmentsDetails_elevation-3__3ECix\",\"elevation-4\":\"VehicleSegmentsDetails_elevation-4__858iZ\",\"elevation-5\":\"VehicleSegmentsDetails_elevation-5__2Sogr\",\"elevation-6\":\"VehicleSegmentsDetails_elevation-6__Ii-zQ\",\"elevation-7\":\"VehicleSegmentsDetails_elevation-7__3X1MO\",\"elevation-8\":\"VehicleSegmentsDetails_elevation-8__15oEo\",\"elevation-9\":\"VehicleSegmentsDetails_elevation-9__2WLa0\",\"elevation-10\":\"VehicleSegmentsDetails_elevation-10__1dPhy\",\"elevation-11\":\"VehicleSegmentsDetails_elevation-11__3xyCu\",\"elevation-12\":\"VehicleSegmentsDetails_elevation-12__1MnP5\",\"elevation-13\":\"VehicleSegmentsDetails_elevation-13__uaRlg\",\"elevation-14\":\"VehicleSegmentsDetails_elevation-14__5LW6Z\",\"elevation-15\":\"VehicleSegmentsDetails_elevation-15__3uqy-\",\"elevation-16\":\"VehicleSegmentsDetails_elevation-16__vhtJ5\",\"elevation-17\":\"VehicleSegmentsDetails_elevation-17__2ieAk\",\"elevation-18\":\"VehicleSegmentsDetails_elevation-18__3_FzV\",\"elevation-19\":\"VehicleSegmentsDetails_elevation-19__2-8g1\",\"elevation-20\":\"VehicleSegmentsDetails_elevation-20__1jhJS\",\"elevation-21\":\"VehicleSegmentsDetails_elevation-21__3wWCP\",\"elevation-22\":\"VehicleSegmentsDetails_elevation-22__12d0X\",\"elevation-23\":\"VehicleSegmentsDetails_elevation-23__2-g2O\",\"elevation-24\":\"VehicleSegmentsDetails_elevation-24__1A9w8\",\"pageNameContainer\":\"VehicleSegmentsDetails_pageNameContainer__31DV8\",\"pageNameContent\":\"VehicleSegmentsDetails_pageNameContent__JGQT_\",\"pageNameContentImage\":\"VehicleSegmentsDetails_pageNameContentImage__DxDkE\",\"pageNameContentText\":\"VehicleSegmentsDetails_pageNameContentText__2e784\",\"form\":\"VehicleSegmentsDetails_form__-ZP8d\",\"label\":\"VehicleSegmentsDetails_label__1gesn\",\"buttonContainer\":\"VehicleSegmentsDetails_buttonContainer__1yIwq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleBrandsDetails_elevation-1__1YdTm\",\"elevation-2\":\"VehicleBrandsDetails_elevation-2__288ey\",\"elevation-3\":\"VehicleBrandsDetails_elevation-3__2XP0q\",\"elevation-4\":\"VehicleBrandsDetails_elevation-4__3VaQ7\",\"elevation-5\":\"VehicleBrandsDetails_elevation-5__3ZdTH\",\"elevation-6\":\"VehicleBrandsDetails_elevation-6__1KUYs\",\"elevation-7\":\"VehicleBrandsDetails_elevation-7__107OB\",\"elevation-8\":\"VehicleBrandsDetails_elevation-8__RQLtH\",\"elevation-9\":\"VehicleBrandsDetails_elevation-9__zwWQN\",\"elevation-10\":\"VehicleBrandsDetails_elevation-10__1w9fF\",\"elevation-11\":\"VehicleBrandsDetails_elevation-11__X48Ie\",\"elevation-12\":\"VehicleBrandsDetails_elevation-12__RCJVj\",\"elevation-13\":\"VehicleBrandsDetails_elevation-13__2vIz1\",\"elevation-14\":\"VehicleBrandsDetails_elevation-14__bQe0m\",\"elevation-15\":\"VehicleBrandsDetails_elevation-15__3SG8P\",\"elevation-16\":\"VehicleBrandsDetails_elevation-16__3_djP\",\"elevation-17\":\"VehicleBrandsDetails_elevation-17__YmNi4\",\"elevation-18\":\"VehicleBrandsDetails_elevation-18__1_Rvc\",\"elevation-19\":\"VehicleBrandsDetails_elevation-19__2MOad\",\"elevation-20\":\"VehicleBrandsDetails_elevation-20__3BNCm\",\"elevation-21\":\"VehicleBrandsDetails_elevation-21__lFfhf\",\"elevation-22\":\"VehicleBrandsDetails_elevation-22__1pb2P\",\"elevation-23\":\"VehicleBrandsDetails_elevation-23__6U7Wb\",\"elevation-24\":\"VehicleBrandsDetails_elevation-24__3ME78\",\"pageNameContainer\":\"VehicleBrandsDetails_pageNameContainer__1CK2S\",\"pageNameContent\":\"VehicleBrandsDetails_pageNameContent__29MVE\",\"pageNameContentImage\":\"VehicleBrandsDetails_pageNameContentImage__FTrfg\",\"pageNameContentText\":\"VehicleBrandsDetails_pageNameContentText__1bmMm\",\"form\":\"VehicleBrandsDetails_form__1aPJo\",\"label\":\"VehicleBrandsDetails_label__1xanj\",\"buttonContainer\":\"VehicleBrandsDetails_buttonContainer__33EWy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"RolesDetails_elevation-1__2FNcR\",\"elevation-2\":\"RolesDetails_elevation-2__kBzp0\",\"elevation-3\":\"RolesDetails_elevation-3__2VQiZ\",\"elevation-4\":\"RolesDetails_elevation-4__3uK12\",\"elevation-5\":\"RolesDetails_elevation-5__mXK-8\",\"elevation-6\":\"RolesDetails_elevation-6__3SGf1\",\"elevation-7\":\"RolesDetails_elevation-7__SJ27a\",\"elevation-8\":\"RolesDetails_elevation-8__37jWo\",\"elevation-9\":\"RolesDetails_elevation-9__2c8vo\",\"elevation-10\":\"RolesDetails_elevation-10__KROLF\",\"elevation-11\":\"RolesDetails_elevation-11__1ZyR8\",\"elevation-12\":\"RolesDetails_elevation-12__1z71h\",\"elevation-13\":\"RolesDetails_elevation-13__3YOkJ\",\"elevation-14\":\"RolesDetails_elevation-14__28vWE\",\"elevation-15\":\"RolesDetails_elevation-15__3KYrL\",\"elevation-16\":\"RolesDetails_elevation-16__3cRte\",\"elevation-17\":\"RolesDetails_elevation-17__3RONB\",\"elevation-18\":\"RolesDetails_elevation-18__2oRXP\",\"elevation-19\":\"RolesDetails_elevation-19__1kONN\",\"elevation-20\":\"RolesDetails_elevation-20__1er9r\",\"elevation-21\":\"RolesDetails_elevation-21__2VQ3N\",\"elevation-22\":\"RolesDetails_elevation-22__1Zavz\",\"elevation-23\":\"RolesDetails_elevation-23__3DUTT\",\"elevation-24\":\"RolesDetails_elevation-24__3Wa1T\",\"container\":\"RolesDetails_container__2-9JI\",\"pageNameContainer\":\"RolesDetails_pageNameContainer__3oBwe\",\"pageNameContent\":\"RolesDetails_pageNameContent__2Oet5\",\"pageNameContentImage\":\"RolesDetails_pageNameContentImage__1y44b\",\"pageNameContentText\":\"RolesDetails_pageNameContentText__1e3E_\",\"form\":\"RolesDetails_form__3Z0H5\",\"label\":\"RolesDetails_label__34MY5\",\"buttonContainer\":\"RolesDetails_buttonContainer__QD_sZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NotificationsTab_elevation-1__cLepU\",\"elevation-2\":\"NotificationsTab_elevation-2__3QEDI\",\"elevation-3\":\"NotificationsTab_elevation-3__1wAqW\",\"elevation-4\":\"NotificationsTab_elevation-4__27HIE\",\"elevation-5\":\"NotificationsTab_elevation-5__2AotM\",\"elevation-6\":\"NotificationsTab_elevation-6__2Mawh\",\"elevation-7\":\"NotificationsTab_elevation-7__2LqkX\",\"elevation-8\":\"NotificationsTab_elevation-8__23K3n\",\"elevation-9\":\"NotificationsTab_elevation-9__1q3sM\",\"elevation-10\":\"NotificationsTab_elevation-10__ObDVQ\",\"elevation-11\":\"NotificationsTab_elevation-11__12li1\",\"elevation-12\":\"NotificationsTab_elevation-12__2mYMv\",\"elevation-13\":\"NotificationsTab_elevation-13__2vnIx\",\"elevation-14\":\"NotificationsTab_elevation-14__1OG2h\",\"elevation-15\":\"NotificationsTab_elevation-15__1c1QF\",\"elevation-16\":\"NotificationsTab_elevation-16__26PMD\",\"elevation-17\":\"NotificationsTab_elevation-17__1pfXF\",\"elevation-18\":\"NotificationsTab_elevation-18__30cor\",\"elevation-19\":\"NotificationsTab_elevation-19__3ErWe\",\"elevation-20\":\"NotificationsTab_elevation-20__1fg2I\",\"elevation-21\":\"NotificationsTab_elevation-21__3BTCV\",\"elevation-22\":\"NotificationsTab_elevation-22__1w2wK\",\"elevation-23\":\"NotificationsTab_elevation-23___1qG_\",\"elevation-24\":\"NotificationsTab_elevation-24__2ExeF\",\"labelAddress\":\"NotificationsTab_labelAddress__1SSXM\",\"small\":\"NotificationsTab_small__3yYjV\",\"linkIcon\":\"NotificationsTab_linkIcon__yYzF0\",\"pin\":\"NotificationsTab_pin__3oYyC\",\"labelDate\":\"NotificationsTab_labelDate__1aP7T\",\"licensePlate\":\"NotificationsTab_licensePlate__9WEYP\",\"contentImage\":\"NotificationsTab_contentImage__1Fi07\",\"img\":\"NotificationsTab_img__tpgtg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DateWithHour_elevation-1__2zkcx\",\"elevation-2\":\"DateWithHour_elevation-2__G1Ac0\",\"elevation-3\":\"DateWithHour_elevation-3__16d-C\",\"elevation-4\":\"DateWithHour_elevation-4__3Kuq_\",\"elevation-5\":\"DateWithHour_elevation-5__2VsZy\",\"elevation-6\":\"DateWithHour_elevation-6__JsfVd\",\"elevation-7\":\"DateWithHour_elevation-7__2cY6k\",\"elevation-8\":\"DateWithHour_elevation-8__3mon6\",\"elevation-9\":\"DateWithHour_elevation-9__1U33l\",\"elevation-10\":\"DateWithHour_elevation-10__1moar\",\"elevation-11\":\"DateWithHour_elevation-11__3yFi2\",\"elevation-12\":\"DateWithHour_elevation-12__Q01JJ\",\"elevation-13\":\"DateWithHour_elevation-13__3Oc5U\",\"elevation-14\":\"DateWithHour_elevation-14__1B7wD\",\"elevation-15\":\"DateWithHour_elevation-15__2mQL3\",\"elevation-16\":\"DateWithHour_elevation-16__1wB2E\",\"elevation-17\":\"DateWithHour_elevation-17__GoaFl\",\"elevation-18\":\"DateWithHour_elevation-18__hH_pm\",\"elevation-19\":\"DateWithHour_elevation-19__2xKzQ\",\"elevation-20\":\"DateWithHour_elevation-20__1F0A6\",\"elevation-21\":\"DateWithHour_elevation-21__3ocaS\",\"elevation-22\":\"DateWithHour_elevation-22__3Gtn5\",\"elevation-23\":\"DateWithHour_elevation-23__3qI4y\",\"elevation-24\":\"DateWithHour_elevation-24__1K-Nw\",\"container\":\"DateWithHour_container__3HCu7\",\"leftChild\":\"DateWithHour_leftChild__3fNN7\",\"rightChild\":\"DateWithHour_rightChild__bmae8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CheckBox_elevation-1__3j-Ze\",\"elevation-2\":\"CheckBox_elevation-2__1BXlJ\",\"elevation-3\":\"CheckBox_elevation-3__3ogux\",\"elevation-4\":\"CheckBox_elevation-4__3rXLe\",\"elevation-5\":\"CheckBox_elevation-5__2aRaX\",\"elevation-6\":\"CheckBox_elevation-6__13fzZ\",\"elevation-7\":\"CheckBox_elevation-7__8tEfR\",\"elevation-8\":\"CheckBox_elevation-8__j2LEg\",\"elevation-9\":\"CheckBox_elevation-9__15U3e\",\"elevation-10\":\"CheckBox_elevation-10__JayrK\",\"elevation-11\":\"CheckBox_elevation-11__31AfD\",\"elevation-12\":\"CheckBox_elevation-12__2FSf1\",\"elevation-13\":\"CheckBox_elevation-13__3e482\",\"elevation-14\":\"CheckBox_elevation-14__31sPl\",\"elevation-15\":\"CheckBox_elevation-15__2BZC1\",\"elevation-16\":\"CheckBox_elevation-16__Dh_ta\",\"elevation-17\":\"CheckBox_elevation-17__3qtAz\",\"elevation-18\":\"CheckBox_elevation-18__fgVlc\",\"elevation-19\":\"CheckBox_elevation-19__10RCC\",\"elevation-20\":\"CheckBox_elevation-20__2J49L\",\"elevation-21\":\"CheckBox_elevation-21__1fy2u\",\"elevation-22\":\"CheckBox_elevation-22__koY2r\",\"elevation-23\":\"CheckBox_elevation-23__2WD8w\",\"elevation-24\":\"CheckBox_elevation-24__2yHU6\",\"container\":\"CheckBox_container__1U9Xc\",\"input\":\"CheckBox_input__1U6XB\",\"checkMark\":\"CheckBox_checkMark__2iHfS\",\"round\":\"CheckBox_round__28MbT\",\"disabled\":\"CheckBox_disabled__QpMyY\",\"icon\":\"CheckBox_icon__1IHf2\",\"label\":\"CheckBox_label__3BABM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Tabs_elevation-1__2BnCe\",\"elevation-2\":\"Tabs_elevation-2__3Zbkw\",\"elevation-3\":\"Tabs_elevation-3__1h_sq\",\"elevation-4\":\"Tabs_elevation-4__Pxs4T\",\"elevation-5\":\"Tabs_elevation-5__1sT_g\",\"elevation-6\":\"Tabs_elevation-6__w3LRq\",\"elevation-7\":\"Tabs_elevation-7__19ljh\",\"elevation-8\":\"Tabs_elevation-8__20Z4Q\",\"elevation-9\":\"Tabs_elevation-9__1Nhdn\",\"elevation-10\":\"Tabs_elevation-10__1hxjm\",\"elevation-11\":\"Tabs_elevation-11__2C28c\",\"elevation-12\":\"Tabs_elevation-12__uQP3V\",\"elevation-13\":\"Tabs_elevation-13__1CX6R\",\"elevation-14\":\"Tabs_elevation-14__1e1o2\",\"elevation-15\":\"Tabs_elevation-15__3ccrD\",\"elevation-16\":\"Tabs_elevation-16__3Js-Y\",\"elevation-17\":\"Tabs_elevation-17__2kXzI\",\"elevation-18\":\"Tabs_elevation-18__3OHQX\",\"elevation-19\":\"Tabs_elevation-19__QZkbH\",\"elevation-20\":\"Tabs_elevation-20__2ryCE\",\"elevation-21\":\"Tabs_elevation-21__bEnaW\",\"elevation-22\":\"Tabs_elevation-22__3c7ON\",\"elevation-23\":\"Tabs_elevation-23__1PG-c\",\"elevation-24\":\"Tabs_elevation-24__JjBus\",\"container\":\"Tabs_container__1Dqu9\",\"list\":\"Tabs_list__3w75M\",\"listItem\":\"Tabs_listItem__36J2c\",\"listItemActive\":\"Tabs_listItemActive__1geB2\",\"content\":\"Tabs_content__1JKTR\",\"message\":\"Tabs_message__3kBW6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Pagination_elevation-1__uJwky\",\"elevation-2\":\"Pagination_elevation-2__2fjKg\",\"elevation-3\":\"Pagination_elevation-3__aVgJF\",\"elevation-4\":\"Pagination_elevation-4__1ZOWA\",\"elevation-5\":\"Pagination_elevation-5__1pn26\",\"elevation-6\":\"Pagination_elevation-6__rvjJv\",\"elevation-7\":\"Pagination_elevation-7__zER_A\",\"elevation-8\":\"Pagination_elevation-8__K97PO\",\"elevation-9\":\"Pagination_elevation-9__2Ogx9\",\"elevation-10\":\"Pagination_elevation-10__9Ii9w\",\"elevation-11\":\"Pagination_elevation-11__2ugHj\",\"elevation-12\":\"Pagination_elevation-12__WXa4E\",\"elevation-13\":\"Pagination_elevation-13__X3QxT\",\"elevation-14\":\"Pagination_elevation-14__217DX\",\"elevation-15\":\"Pagination_elevation-15__1n8fP\",\"elevation-16\":\"Pagination_elevation-16__2sDRa\",\"elevation-17\":\"Pagination_elevation-17__1GjUM\",\"elevation-18\":\"Pagination_elevation-18__1-U0o\",\"elevation-19\":\"Pagination_elevation-19__2KDT-\",\"elevation-20\":\"Pagination_elevation-20__3fHJM\",\"elevation-21\":\"Pagination_elevation-21__7SxXn\",\"elevation-22\":\"Pagination_elevation-22__11CVJ\",\"elevation-23\":\"Pagination_elevation-23__PFqMT\",\"elevation-24\":\"Pagination_elevation-24__2rDy3\",\"container\":\"Pagination_container__1txGN\",\"pages\":\"Pagination_pages__2G9KQ\",\"page\":\"Pagination_page__2LiyW\",\"currentPage\":\"Pagination_currentPage__TAgli\",\"direction\":\"Pagination_direction__xLQrY\",\"directionDisabled\":\"Pagination_directionDisabled__1EYQ-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"TechnicalInformationFormItem_elevation-1__3KPWk\",\"elevation-2\":\"TechnicalInformationFormItem_elevation-2__nj_83\",\"elevation-3\":\"TechnicalInformationFormItem_elevation-3__2ETCg\",\"elevation-4\":\"TechnicalInformationFormItem_elevation-4__30R-h\",\"elevation-5\":\"TechnicalInformationFormItem_elevation-5__5PoIH\",\"elevation-6\":\"TechnicalInformationFormItem_elevation-6__1x72_\",\"elevation-7\":\"TechnicalInformationFormItem_elevation-7__1NjNg\",\"elevation-8\":\"TechnicalInformationFormItem_elevation-8__2jGer\",\"elevation-9\":\"TechnicalInformationFormItem_elevation-9__zMPp_\",\"elevation-10\":\"TechnicalInformationFormItem_elevation-10__1QDj8\",\"elevation-11\":\"TechnicalInformationFormItem_elevation-11__3xp5M\",\"elevation-12\":\"TechnicalInformationFormItem_elevation-12__3HYUs\",\"elevation-13\":\"TechnicalInformationFormItem_elevation-13__2_D3Y\",\"elevation-14\":\"TechnicalInformationFormItem_elevation-14__25VA_\",\"elevation-15\":\"TechnicalInformationFormItem_elevation-15__NwS6u\",\"elevation-16\":\"TechnicalInformationFormItem_elevation-16__2t2Of\",\"elevation-17\":\"TechnicalInformationFormItem_elevation-17__3JUjP\",\"elevation-18\":\"TechnicalInformationFormItem_elevation-18__2zNWK\",\"elevation-19\":\"TechnicalInformationFormItem_elevation-19__3C2t1\",\"elevation-20\":\"TechnicalInformationFormItem_elevation-20__R6Nmt\",\"elevation-21\":\"TechnicalInformationFormItem_elevation-21__2L8e6\",\"elevation-22\":\"TechnicalInformationFormItem_elevation-22__2vs95\",\"elevation-23\":\"TechnicalInformationFormItem_elevation-23__2HPMJ\",\"elevation-24\":\"TechnicalInformationFormItem_elevation-24__2QaV6\",\"container\":\"TechnicalInformationFormItem_container__2FesJ\",\"removeButton\":\"TechnicalInformationFormItem_removeButton__3-9RI\",\"removeIcon\":\"TechnicalInformationFormItem_removeIcon__gilX-\",\"label\":\"TechnicalInformationFormItem_label__2t65X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VerificationFiltersScreen_elevation-1__2_unz\",\"elevation-2\":\"VerificationFiltersScreen_elevation-2__1RIhu\",\"elevation-3\":\"VerificationFiltersScreen_elevation-3__3SQdd\",\"elevation-4\":\"VerificationFiltersScreen_elevation-4__RCXe5\",\"elevation-5\":\"VerificationFiltersScreen_elevation-5__1Pdll\",\"elevation-6\":\"VerificationFiltersScreen_elevation-6__2e6v1\",\"elevation-7\":\"VerificationFiltersScreen_elevation-7__2P4vA\",\"elevation-8\":\"VerificationFiltersScreen_elevation-8__2Krmp\",\"elevation-9\":\"VerificationFiltersScreen_elevation-9__2H0AN\",\"elevation-10\":\"VerificationFiltersScreen_elevation-10__1CLLB\",\"elevation-11\":\"VerificationFiltersScreen_elevation-11__2lsw9\",\"elevation-12\":\"VerificationFiltersScreen_elevation-12__2_ybs\",\"elevation-13\":\"VerificationFiltersScreen_elevation-13__2Nxhs\",\"elevation-14\":\"VerificationFiltersScreen_elevation-14__39x5h\",\"elevation-15\":\"VerificationFiltersScreen_elevation-15__3K6Br\",\"elevation-16\":\"VerificationFiltersScreen_elevation-16__xhtWf\",\"elevation-17\":\"VerificationFiltersScreen_elevation-17__20Yjw\",\"elevation-18\":\"VerificationFiltersScreen_elevation-18__1cT6k\",\"elevation-19\":\"VerificationFiltersScreen_elevation-19__32SKI\",\"elevation-20\":\"VerificationFiltersScreen_elevation-20__36m2o\",\"elevation-21\":\"VerificationFiltersScreen_elevation-21__1XtbR\",\"elevation-22\":\"VerificationFiltersScreen_elevation-22__2YFf5\",\"elevation-23\":\"VerificationFiltersScreen_elevation-23__3DRf0\",\"elevation-24\":\"VerificationFiltersScreen_elevation-24__2WZv3\",\"bold\":\"VerificationFiltersScreen_bold__KOeuG\",\"formContent\":\"VerificationFiltersScreen_formContent__3wCMb\",\"buttonsFooter\":\"VerificationFiltersScreen_buttonsFooter__1qRon\",\"dateRangeCustom\":\"VerificationFiltersScreen_dateRangeCustom__3X6bm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AnnotationsForm_elevation-1__Ki49b\",\"elevation-2\":\"AnnotationsForm_elevation-2__374sA\",\"elevation-3\":\"AnnotationsForm_elevation-3__1gd_p\",\"elevation-4\":\"AnnotationsForm_elevation-4__a9Iqe\",\"elevation-5\":\"AnnotationsForm_elevation-5__3dU-s\",\"elevation-6\":\"AnnotationsForm_elevation-6__239VQ\",\"elevation-7\":\"AnnotationsForm_elevation-7__1xOJK\",\"elevation-8\":\"AnnotationsForm_elevation-8__2pbpp\",\"elevation-9\":\"AnnotationsForm_elevation-9__3R_Qq\",\"elevation-10\":\"AnnotationsForm_elevation-10__32OL6\",\"elevation-11\":\"AnnotationsForm_elevation-11__1GXim\",\"elevation-12\":\"AnnotationsForm_elevation-12__1mSap\",\"elevation-13\":\"AnnotationsForm_elevation-13__1navS\",\"elevation-14\":\"AnnotationsForm_elevation-14__3CElo\",\"elevation-15\":\"AnnotationsForm_elevation-15__1qc7o\",\"elevation-16\":\"AnnotationsForm_elevation-16__2uF96\",\"elevation-17\":\"AnnotationsForm_elevation-17__38UTz\",\"elevation-18\":\"AnnotationsForm_elevation-18__3K-nX\",\"elevation-19\":\"AnnotationsForm_elevation-19__WCG1Y\",\"elevation-20\":\"AnnotationsForm_elevation-20__p5B1e\",\"elevation-21\":\"AnnotationsForm_elevation-21__1wWLl\",\"elevation-22\":\"AnnotationsForm_elevation-22__2sKPz\",\"elevation-23\":\"AnnotationsForm_elevation-23__2ngZb\",\"elevation-24\":\"AnnotationsForm_elevation-24__uYcl_\",\"container\":\"AnnotationsForm_container__2jEQo\",\"header\":\"AnnotationsForm_header__2T5cf\",\"headerText\":\"AnnotationsForm_headerText__1XaL7\",\"headerButton\":\"AnnotationsForm_headerButton__3emIR\",\"headerButtonText\":\"AnnotationsForm_headerButtonText__D87_r\",\"headerButtonIcon\":\"AnnotationsForm_headerButtonIcon__3K_A6\",\"noAnnotationsText\":\"AnnotationsForm_noAnnotationsText__vYBZ-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NotificationsDetails_elevation-1__17fy4\",\"elevation-2\":\"NotificationsDetails_elevation-2__unY-p\",\"elevation-3\":\"NotificationsDetails_elevation-3__3ML-8\",\"elevation-4\":\"NotificationsDetails_elevation-4__2e3DA\",\"elevation-5\":\"NotificationsDetails_elevation-5__1t6oX\",\"elevation-6\":\"NotificationsDetails_elevation-6__UwfT0\",\"elevation-7\":\"NotificationsDetails_elevation-7__12ZBr\",\"elevation-8\":\"NotificationsDetails_elevation-8__2YXg3\",\"elevation-9\":\"NotificationsDetails_elevation-9__1-Ca2\",\"elevation-10\":\"NotificationsDetails_elevation-10__4XNco\",\"elevation-11\":\"NotificationsDetails_elevation-11__2bgF6\",\"elevation-12\":\"NotificationsDetails_elevation-12__3VE1m\",\"elevation-13\":\"NotificationsDetails_elevation-13__2fLgc\",\"elevation-14\":\"NotificationsDetails_elevation-14__2rkhF\",\"elevation-15\":\"NotificationsDetails_elevation-15__3iGPM\",\"elevation-16\":\"NotificationsDetails_elevation-16__3X83B\",\"elevation-17\":\"NotificationsDetails_elevation-17__3TlUd\",\"elevation-18\":\"NotificationsDetails_elevation-18__3ikb5\",\"elevation-19\":\"NotificationsDetails_elevation-19__15NFN\",\"elevation-20\":\"NotificationsDetails_elevation-20__1hfA_\",\"elevation-21\":\"NotificationsDetails_elevation-21__QHbhH\",\"elevation-22\":\"NotificationsDetails_elevation-22__2ZueA\",\"elevation-23\":\"NotificationsDetails_elevation-23__1YgKE\",\"elevation-24\":\"NotificationsDetails_elevation-24__1oVwU\",\"containerWrapper\":\"NotificationsDetails_containerWrapper__1idf_\",\"contentManagement\":\"NotificationsDetails_contentManagement__21jXf\",\"hideTab\":\"NotificationsDetails_hideTab__Wmdsx\",\"formContent\":\"NotificationsDetails_formContent__1uzg-\",\"formContainer\":\"NotificationsDetails_formContainer__XC6q4\",\"form\":\"NotificationsDetails_form__12Ass\",\"title\":\"NotificationsDetails_title__1xVsm\",\"label\":\"NotificationsDetails_label__2z0dI\",\"buttonContainer\":\"NotificationsDetails_buttonContainer__PVXiA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DamageTypesDetails_elevation-1__OJyn4\",\"elevation-2\":\"DamageTypesDetails_elevation-2__yXkkc\",\"elevation-3\":\"DamageTypesDetails_elevation-3__1mHWR\",\"elevation-4\":\"DamageTypesDetails_elevation-4__1nuwG\",\"elevation-5\":\"DamageTypesDetails_elevation-5__1D1bN\",\"elevation-6\":\"DamageTypesDetails_elevation-6__1aHbn\",\"elevation-7\":\"DamageTypesDetails_elevation-7__SqNNS\",\"elevation-8\":\"DamageTypesDetails_elevation-8__29HjP\",\"elevation-9\":\"DamageTypesDetails_elevation-9__2Bt_Q\",\"elevation-10\":\"DamageTypesDetails_elevation-10__xd8xf\",\"elevation-11\":\"DamageTypesDetails_elevation-11__ERCGi\",\"elevation-12\":\"DamageTypesDetails_elevation-12__3mMOh\",\"elevation-13\":\"DamageTypesDetails_elevation-13__1LuqO\",\"elevation-14\":\"DamageTypesDetails_elevation-14__1NOY1\",\"elevation-15\":\"DamageTypesDetails_elevation-15__e0y9Y\",\"elevation-16\":\"DamageTypesDetails_elevation-16__2Xrq5\",\"elevation-17\":\"DamageTypesDetails_elevation-17__1fDZH\",\"elevation-18\":\"DamageTypesDetails_elevation-18__1KF0n\",\"elevation-19\":\"DamageTypesDetails_elevation-19__19ekP\",\"elevation-20\":\"DamageTypesDetails_elevation-20__3Bjvt\",\"elevation-21\":\"DamageTypesDetails_elevation-21__2lEwy\",\"elevation-22\":\"DamageTypesDetails_elevation-22__3vntV\",\"elevation-23\":\"DamageTypesDetails_elevation-23__Wu92Z\",\"elevation-24\":\"DamageTypesDetails_elevation-24__1Og4s\",\"pageNameContainer\":\"DamageTypesDetails_pageNameContainer__3HIrY\",\"pageNameContent\":\"DamageTypesDetails_pageNameContent__3UDga\",\"pageNameContentImage\":\"DamageTypesDetails_pageNameContentImage__3aPlE\",\"pageNameContentText\":\"DamageTypesDetails_pageNameContentText__2pBlO\",\"form\":\"DamageTypesDetails_form__2PfBf\",\"label\":\"DamageTypesDetails_label__3OSUt\",\"buttonContainer\":\"DamageTypesDetails_buttonContainer__3DwWF\",\"spinner\":\"DamageTypesDetails_spinner__rxQ-c\",\"placeholder\":\"DamageTypesDetails_placeholder__3Cs1Z\",\"labelSpinner\":\"DamageTypesDetails_labelSpinner__2yJWf\",\"selected\":\"DamageTypesDetails_selected__3EokC\",\"notSelected\":\"DamageTypesDetails_notSelected__3b1Kg\",\"spinnerDetails\":\"DamageTypesDetails_spinnerDetails__3_ubn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ReservationFilters_elevation-1__2nPpS\",\"elevation-2\":\"ReservationFilters_elevation-2__3kzTB\",\"elevation-3\":\"ReservationFilters_elevation-3__2hWop\",\"elevation-4\":\"ReservationFilters_elevation-4__2C2bm\",\"elevation-5\":\"ReservationFilters_elevation-5__3DLUQ\",\"elevation-6\":\"ReservationFilters_elevation-6__2hlwX\",\"elevation-7\":\"ReservationFilters_elevation-7__D5mw4\",\"elevation-8\":\"ReservationFilters_elevation-8__3KzwE\",\"elevation-9\":\"ReservationFilters_elevation-9__2Gx53\",\"elevation-10\":\"ReservationFilters_elevation-10__2mgIy\",\"elevation-11\":\"ReservationFilters_elevation-11__74OQq\",\"elevation-12\":\"ReservationFilters_elevation-12__2fq0t\",\"elevation-13\":\"ReservationFilters_elevation-13__1adg_\",\"elevation-14\":\"ReservationFilters_elevation-14__2Xk82\",\"elevation-15\":\"ReservationFilters_elevation-15__3C4i-\",\"elevation-16\":\"ReservationFilters_elevation-16__k8trq\",\"elevation-17\":\"ReservationFilters_elevation-17__pXmwX\",\"elevation-18\":\"ReservationFilters_elevation-18__2Rogf\",\"elevation-19\":\"ReservationFilters_elevation-19__1HdWj\",\"elevation-20\":\"ReservationFilters_elevation-20__3k3qU\",\"elevation-21\":\"ReservationFilters_elevation-21__3F4de\",\"elevation-22\":\"ReservationFilters_elevation-22__XwwKn\",\"elevation-23\":\"ReservationFilters_elevation-23__1OxGx\",\"elevation-24\":\"ReservationFilters_elevation-24__3dJbA\",\"filtersLabel\":\"ReservationFilters_filtersLabel__353X-\",\"searchButton\":\"ReservationFilters_searchButton__3QcWc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImportChargeFormScreen_elevation-1__gVE0N\",\"elevation-2\":\"ImportChargeFormScreen_elevation-2__3dUhH\",\"elevation-3\":\"ImportChargeFormScreen_elevation-3__3IzGJ\",\"elevation-4\":\"ImportChargeFormScreen_elevation-4__1DWh0\",\"elevation-5\":\"ImportChargeFormScreen_elevation-5__QnfRa\",\"elevation-6\":\"ImportChargeFormScreen_elevation-6__1Z_sl\",\"elevation-7\":\"ImportChargeFormScreen_elevation-7__3j7Fe\",\"elevation-8\":\"ImportChargeFormScreen_elevation-8__2D2G4\",\"elevation-9\":\"ImportChargeFormScreen_elevation-9__3z58w\",\"elevation-10\":\"ImportChargeFormScreen_elevation-10__3-zZ9\",\"elevation-11\":\"ImportChargeFormScreen_elevation-11__l6OTd\",\"elevation-12\":\"ImportChargeFormScreen_elevation-12__3re2X\",\"elevation-13\":\"ImportChargeFormScreen_elevation-13__2pcJM\",\"elevation-14\":\"ImportChargeFormScreen_elevation-14__3qToP\",\"elevation-15\":\"ImportChargeFormScreen_elevation-15__Kz3z3\",\"elevation-16\":\"ImportChargeFormScreen_elevation-16__3UAb8\",\"elevation-17\":\"ImportChargeFormScreen_elevation-17__VU0pt\",\"elevation-18\":\"ImportChargeFormScreen_elevation-18__1Y86o\",\"elevation-19\":\"ImportChargeFormScreen_elevation-19__1i0qd\",\"elevation-20\":\"ImportChargeFormScreen_elevation-20__1WErY\",\"elevation-21\":\"ImportChargeFormScreen_elevation-21__2g-y7\",\"elevation-22\":\"ImportChargeFormScreen_elevation-22__PpX4i\",\"elevation-23\":\"ImportChargeFormScreen_elevation-23__iXlyM\",\"elevation-24\":\"ImportChargeFormScreen_elevation-24__K-YvA\",\"bold\":\"ImportChargeFormScreen_bold__3lxtY\",\"formContent\":\"ImportChargeFormScreen_formContent__3eNub\",\"details\":\"ImportChargeFormScreen_details__38ToD\",\"image\":\"ImportChargeFormScreen_image__3jt4F\",\"contentImage\":\"ImportChargeFormScreen_contentImage__1-AY4\",\"img\":\"ImportChargeFormScreen_img__14o58\",\"description\":\"ImportChargeFormScreen_description__J3JL4\",\"smallLabel\":\"ImportChargeFormScreen_smallLabel__a5-k3\",\"divider\":\"ImportChargeFormScreen_divider__25J-J\",\"label\":\"ImportChargeFormScreen_label__h_HxW\",\"warningInput\":\"ImportChargeFormScreen_warningInput__1j_gO\",\"warningLabel\":\"ImportChargeFormScreen_warningLabel__ndXc1\",\"warningMessage\":\"ImportChargeFormScreen_warningMessage__28N9N\",\"buttonsFooter\":\"ImportChargeFormScreen_buttonsFooter__6_N3T\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"UseContractScreen_elevation-1__20pK1\",\"elevation-2\":\"UseContractScreen_elevation-2__3SIU-\",\"elevation-3\":\"UseContractScreen_elevation-3__33mdi\",\"elevation-4\":\"UseContractScreen_elevation-4__1fE1q\",\"elevation-5\":\"UseContractScreen_elevation-5__3ltlK\",\"elevation-6\":\"UseContractScreen_elevation-6__1waYJ\",\"elevation-7\":\"UseContractScreen_elevation-7__2Pl1V\",\"elevation-8\":\"UseContractScreen_elevation-8__3rU2y\",\"elevation-9\":\"UseContractScreen_elevation-9__1I1RR\",\"elevation-10\":\"UseContractScreen_elevation-10__1gVoU\",\"elevation-11\":\"UseContractScreen_elevation-11__1yUJl\",\"elevation-12\":\"UseContractScreen_elevation-12__3Gyjp\",\"elevation-13\":\"UseContractScreen_elevation-13__2L5sv\",\"elevation-14\":\"UseContractScreen_elevation-14__1Dsg8\",\"elevation-15\":\"UseContractScreen_elevation-15__3A54e\",\"elevation-16\":\"UseContractScreen_elevation-16__32wql\",\"elevation-17\":\"UseContractScreen_elevation-17__CrmzI\",\"elevation-18\":\"UseContractScreen_elevation-18__1P34w\",\"elevation-19\":\"UseContractScreen_elevation-19__1iFQu\",\"elevation-20\":\"UseContractScreen_elevation-20__3sOBM\",\"elevation-21\":\"UseContractScreen_elevation-21__23TBS\",\"elevation-22\":\"UseContractScreen_elevation-22__1oRdS\",\"elevation-23\":\"UseContractScreen_elevation-23__wEVkV\",\"elevation-24\":\"UseContractScreen_elevation-24__2BXtd\",\"col\":\"UseContractScreen_col__2a_kS\",\"xxl\":\"UseContractScreen_xxl__2RGsd\",\"header\":\"UseContractScreen_header__3yMvo\",\"icon\":\"UseContractScreen_icon__3aAcD\",\"colRightContent\":\"UseContractScreen_colRightContent__3FTEn\",\"subtitle\":\"UseContractScreen_subtitle__XYLEC\",\"label\":\"UseContractScreen_label__2oeWw\",\"content\":\"UseContractScreen_content__V0X45\",\"selectOption\":\"UseContractScreen_selectOption__aiH5N\",\"placeholder\":\"UseContractScreen_placeholder__uRtqu\",\"selected\":\"UseContractScreen_selected__1_AwP\",\"spinner\":\"UseContractScreen_spinner__2t_wA\",\"labelSpinner\":\"UseContractScreen_labelSpinner__10H-Y\",\"notSelected\":\"UseContractScreen_notSelected__3JpOr\",\"spinnerDetails\":\"UseContractScreen_spinnerDetails__16XFA\",\"buttonsContainer\":\"UseContractScreen_buttonsContainer__104ev\",\"button\":\"UseContractScreen_button__BUXjT\",\"groupInputsWarranty\":\"UseContractScreen_groupInputsWarranty__3b1iM\",\"groupInputWarranty\":\"UseContractScreen_groupInputWarranty__1hIVK\",\"marginTopSmallScreens\":\"UseContractScreen_marginTopSmallScreens__16YyB\",\"groupInputSeparatorWarranty\":\"UseContractScreen_groupInputSeparatorWarranty__1i5FG\",\"groupStampDuty\":\"UseContractScreen_groupStampDuty__2x1Fb\",\"groupSpinner\":\"UseContractScreen_groupSpinner__1mLbL\",\"groupInputStampDuty\":\"UseContractScreen_groupInputStampDuty__grgRI\",\"dateRangeCustom\":\"UseContractScreen_dateRangeCustom__Z6j5O\",\"containerSmallButton\":\"UseContractScreen_containerSmallButton__30As7\",\"iconAdd\":\"UseContractScreen_iconAdd__2J1EL\",\"rowAlerts\":\"UseContractScreen_rowAlerts__1fCPY\",\"removeIcon\":\"UseContractScreen_removeIcon__3HMAd\",\"noInfoText\":\"UseContractScreen_noInfoText__2ZwuD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesTab_elevation-1__yA3lJ\",\"elevation-2\":\"VehiclesTab_elevation-2__35Dwn\",\"elevation-3\":\"VehiclesTab_elevation-3__C4pDV\",\"elevation-4\":\"VehiclesTab_elevation-4__qszF0\",\"elevation-5\":\"VehiclesTab_elevation-5__3Deao\",\"elevation-6\":\"VehiclesTab_elevation-6__322ee\",\"elevation-7\":\"VehiclesTab_elevation-7__nM1RB\",\"elevation-8\":\"VehiclesTab_elevation-8__2UM-N\",\"elevation-9\":\"VehiclesTab_elevation-9__3kdfV\",\"elevation-10\":\"VehiclesTab_elevation-10__3-bwZ\",\"elevation-11\":\"VehiclesTab_elevation-11__I2YwF\",\"elevation-12\":\"VehiclesTab_elevation-12__3TKQI\",\"elevation-13\":\"VehiclesTab_elevation-13__2vaaH\",\"elevation-14\":\"VehiclesTab_elevation-14__1GLgG\",\"elevation-15\":\"VehiclesTab_elevation-15__2dX9t\",\"elevation-16\":\"VehiclesTab_elevation-16__22m6o\",\"elevation-17\":\"VehiclesTab_elevation-17__2Jumr\",\"elevation-18\":\"VehiclesTab_elevation-18__12FVo\",\"elevation-19\":\"VehiclesTab_elevation-19__1C-MZ\",\"elevation-20\":\"VehiclesTab_elevation-20__3lOdu\",\"elevation-21\":\"VehiclesTab_elevation-21__18YQV\",\"elevation-22\":\"VehiclesTab_elevation-22__P9Gp0\",\"elevation-23\":\"VehiclesTab_elevation-23__1aUPc\",\"elevation-24\":\"VehiclesTab_elevation-24__3ckTv\",\"tabHeader\":\"VehiclesTab_tabHeader__3trx1\",\"columnPlate\":\"VehiclesTab_columnPlate__hyfUX\",\"columnBrand\":\"VehiclesTab_columnBrand__A5va8\",\"columnSpec\":\"VehiclesTab_columnSpec__3fCrb\",\"contentImage\":\"VehiclesTab_contentImage__1U2kX\",\"img\":\"VehiclesTab_img__2Med0\",\"flexRow\":\"VehiclesTab_flexRow__3R9vN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Dropdown_elevation-1__1cDGN\",\"elevation-2\":\"Dropdown_elevation-2__opngr\",\"elevation-3\":\"Dropdown_elevation-3__37BkJ\",\"elevation-4\":\"Dropdown_elevation-4__ZbImK\",\"elevation-5\":\"Dropdown_elevation-5__CxP_x\",\"elevation-6\":\"Dropdown_elevation-6__27BML\",\"elevation-7\":\"Dropdown_elevation-7__2eVkk\",\"elevation-8\":\"Dropdown_elevation-8__2zS1U\",\"elevation-9\":\"Dropdown_elevation-9__ncssB\",\"elevation-10\":\"Dropdown_elevation-10__1Kf2G\",\"elevation-11\":\"Dropdown_elevation-11__2BbNy\",\"elevation-12\":\"Dropdown_elevation-12__39bjY\",\"elevation-13\":\"Dropdown_elevation-13__1YovM\",\"elevation-14\":\"Dropdown_elevation-14__28-ce\",\"elevation-15\":\"Dropdown_elevation-15__37Szw\",\"elevation-16\":\"Dropdown_elevation-16__1_wxk\",\"elevation-17\":\"Dropdown_elevation-17__-vX-r\",\"elevation-18\":\"Dropdown_elevation-18__1PApW\",\"elevation-19\":\"Dropdown_elevation-19__TrYss\",\"elevation-20\":\"Dropdown_elevation-20__MKzOf\",\"elevation-21\":\"Dropdown_elevation-21__2TpBk\",\"elevation-22\":\"Dropdown_elevation-22__3XYv0\",\"elevation-23\":\"Dropdown_elevation-23__3LDYA\",\"elevation-24\":\"Dropdown_elevation-24__1lbWC\",\"icon\":\"Dropdown_icon__2S4C3\",\"dropdownContainer\":\"Dropdown_dropdownContainer__eINeu\",\"dropdownItem\":\"Dropdown_dropdownItem__31Px0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlertsCounter_elevation-1__3KvUp\",\"elevation-2\":\"AlertsCounter_elevation-2__2eN53\",\"elevation-3\":\"AlertsCounter_elevation-3__3kfrp\",\"elevation-4\":\"AlertsCounter_elevation-4__wK3un\",\"elevation-5\":\"AlertsCounter_elevation-5__37Okr\",\"elevation-6\":\"AlertsCounter_elevation-6__1qVdV\",\"elevation-7\":\"AlertsCounter_elevation-7__6409b\",\"elevation-8\":\"AlertsCounter_elevation-8__1WVNg\",\"elevation-9\":\"AlertsCounter_elevation-9__1oN1h\",\"elevation-10\":\"AlertsCounter_elevation-10__1rl9K\",\"elevation-11\":\"AlertsCounter_elevation-11__n0Ze1\",\"elevation-12\":\"AlertsCounter_elevation-12__1fIj9\",\"elevation-13\":\"AlertsCounter_elevation-13__N0Apg\",\"elevation-14\":\"AlertsCounter_elevation-14__31GN7\",\"elevation-15\":\"AlertsCounter_elevation-15__3tG8D\",\"elevation-16\":\"AlertsCounter_elevation-16__3Iwg6\",\"elevation-17\":\"AlertsCounter_elevation-17__kN__o\",\"elevation-18\":\"AlertsCounter_elevation-18__wCRrd\",\"elevation-19\":\"AlertsCounter_elevation-19__7urQN\",\"elevation-20\":\"AlertsCounter_elevation-20__162Zt\",\"elevation-21\":\"AlertsCounter_elevation-21__1ChjC\",\"elevation-22\":\"AlertsCounter_elevation-22__2hYpS\",\"elevation-23\":\"AlertsCounter_elevation-23__1BxXD\",\"elevation-24\":\"AlertsCounter_elevation-24__3vJuM\",\"container\":\"AlertsCounter_container__1VNIK\",\"subContainer\":\"AlertsCounter_subContainer__2HXYB\",\"icon\":\"AlertsCounter_icon__3m8l9\",\"counter\":\"AlertsCounter_counter__YCuFf\",\"iconSmall\":\"AlertsCounter_iconSmall__3XKWg\",\"counterSmall\":\"AlertsCounter_counterSmall__3t-DS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleFuelFormItem_elevation-1__2NVME\",\"elevation-2\":\"VehicleFuelFormItem_elevation-2__37Wq9\",\"elevation-3\":\"VehicleFuelFormItem_elevation-3__3MWJt\",\"elevation-4\":\"VehicleFuelFormItem_elevation-4__1am9u\",\"elevation-5\":\"VehicleFuelFormItem_elevation-5__3SY1y\",\"elevation-6\":\"VehicleFuelFormItem_elevation-6__2E3Nw\",\"elevation-7\":\"VehicleFuelFormItem_elevation-7__qBvVL\",\"elevation-8\":\"VehicleFuelFormItem_elevation-8__Rksfz\",\"elevation-9\":\"VehicleFuelFormItem_elevation-9__2g7PK\",\"elevation-10\":\"VehicleFuelFormItem_elevation-10__fKH5-\",\"elevation-11\":\"VehicleFuelFormItem_elevation-11__2rC14\",\"elevation-12\":\"VehicleFuelFormItem_elevation-12__3edgB\",\"elevation-13\":\"VehicleFuelFormItem_elevation-13__3ZOis\",\"elevation-14\":\"VehicleFuelFormItem_elevation-14__3PDQS\",\"elevation-15\":\"VehicleFuelFormItem_elevation-15__35d89\",\"elevation-16\":\"VehicleFuelFormItem_elevation-16__3IHnq\",\"elevation-17\":\"VehicleFuelFormItem_elevation-17__2yDW9\",\"elevation-18\":\"VehicleFuelFormItem_elevation-18__3v3WS\",\"elevation-19\":\"VehicleFuelFormItem_elevation-19__ezpaj\",\"elevation-20\":\"VehicleFuelFormItem_elevation-20__373do\",\"elevation-21\":\"VehicleFuelFormItem_elevation-21__1BOiI\",\"elevation-22\":\"VehicleFuelFormItem_elevation-22__3TTg-\",\"elevation-23\":\"VehicleFuelFormItem_elevation-23__17x5m\",\"elevation-24\":\"VehicleFuelFormItem_elevation-24__3IHPo\",\"container\":\"VehicleFuelFormItem_container__3u6-3\",\"removeButton\":\"VehicleFuelFormItem_removeButton__1SLpp\",\"removeIcon\":\"VehicleFuelFormItem_removeIcon__1hL4w\",\"label\":\"VehicleFuelFormItem_label__zGdkQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FiltersView_elevation-1__ExLHS\",\"elevation-2\":\"FiltersView_elevation-2__1fz-b\",\"elevation-3\":\"FiltersView_elevation-3__30j8G\",\"elevation-4\":\"FiltersView_elevation-4__3rnrF\",\"elevation-5\":\"FiltersView_elevation-5__QLY6v\",\"elevation-6\":\"FiltersView_elevation-6__eLqSu\",\"elevation-7\":\"FiltersView_elevation-7__pxzMY\",\"elevation-8\":\"FiltersView_elevation-8__3P41o\",\"elevation-9\":\"FiltersView_elevation-9__1z6Jg\",\"elevation-10\":\"FiltersView_elevation-10__3grDG\",\"elevation-11\":\"FiltersView_elevation-11__2gRIO\",\"elevation-12\":\"FiltersView_elevation-12__1bNiw\",\"elevation-13\":\"FiltersView_elevation-13__3KdZN\",\"elevation-14\":\"FiltersView_elevation-14__2tiiS\",\"elevation-15\":\"FiltersView_elevation-15__PKHal\",\"elevation-16\":\"FiltersView_elevation-16__2OmUh\",\"elevation-17\":\"FiltersView_elevation-17__1XDSB\",\"elevation-18\":\"FiltersView_elevation-18__2T4IQ\",\"elevation-19\":\"FiltersView_elevation-19__2rRGt\",\"elevation-20\":\"FiltersView_elevation-20__1WTmr\",\"elevation-21\":\"FiltersView_elevation-21__37lY1\",\"elevation-22\":\"FiltersView_elevation-22__HnOkf\",\"elevation-23\":\"FiltersView_elevation-23__14MWW\",\"elevation-24\":\"FiltersView_elevation-24__2oRSC\",\"formContent\":\"FiltersView_formContent__2YFJU\",\"buttonsFooter\":\"FiltersView_buttonsFooter__2I2DI\",\"bold\":\"FiltersView_bold__33MUm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlertsFilters_elevation-1__3Owfs\",\"elevation-2\":\"AlertsFilters_elevation-2__1YZpt\",\"elevation-3\":\"AlertsFilters_elevation-3__2hWrY\",\"elevation-4\":\"AlertsFilters_elevation-4__2xl6Q\",\"elevation-5\":\"AlertsFilters_elevation-5__eNUf8\",\"elevation-6\":\"AlertsFilters_elevation-6__2t5cu\",\"elevation-7\":\"AlertsFilters_elevation-7__2yS8v\",\"elevation-8\":\"AlertsFilters_elevation-8__bQnKN\",\"elevation-9\":\"AlertsFilters_elevation-9__21DWF\",\"elevation-10\":\"AlertsFilters_elevation-10__1d1tW\",\"elevation-11\":\"AlertsFilters_elevation-11__EAIc1\",\"elevation-12\":\"AlertsFilters_elevation-12__3_Wki\",\"elevation-13\":\"AlertsFilters_elevation-13__3w2g-\",\"elevation-14\":\"AlertsFilters_elevation-14__3g5wQ\",\"elevation-15\":\"AlertsFilters_elevation-15__EIZRw\",\"elevation-16\":\"AlertsFilters_elevation-16__19v77\",\"elevation-17\":\"AlertsFilters_elevation-17__7x_Yw\",\"elevation-18\":\"AlertsFilters_elevation-18__1qEbJ\",\"elevation-19\":\"AlertsFilters_elevation-19__11yIr\",\"elevation-20\":\"AlertsFilters_elevation-20__GG4Ub\",\"elevation-21\":\"AlertsFilters_elevation-21__1Iz3p\",\"elevation-22\":\"AlertsFilters_elevation-22__3RLAA\",\"elevation-23\":\"AlertsFilters_elevation-23__Qu30J\",\"elevation-24\":\"AlertsFilters_elevation-24__2xTP1\",\"bold\":\"AlertsFilters_bold__2dD_v\",\"formContent\":\"AlertsFilters_formContent__2Npme\",\"buttonsFooter\":\"AlertsFilters_buttonsFooter__1cucc\",\"dateRangeCustom\":\"AlertsFilters_dateRangeCustom__3XVSQ\",\"sliderRow\":\"AlertsFilters_sliderRow__HRNGK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarAlertsTab_elevation-1__ZvZ28\",\"elevation-2\":\"CarAlertsTab_elevation-2__1cCrN\",\"elevation-3\":\"CarAlertsTab_elevation-3__3pZI7\",\"elevation-4\":\"CarAlertsTab_elevation-4__2Dtc6\",\"elevation-5\":\"CarAlertsTab_elevation-5__1upRU\",\"elevation-6\":\"CarAlertsTab_elevation-6__3dfc4\",\"elevation-7\":\"CarAlertsTab_elevation-7__2rxYk\",\"elevation-8\":\"CarAlertsTab_elevation-8__3Iokm\",\"elevation-9\":\"CarAlertsTab_elevation-9__PJeT0\",\"elevation-10\":\"CarAlertsTab_elevation-10__2GkJb\",\"elevation-11\":\"CarAlertsTab_elevation-11__BauT8\",\"elevation-12\":\"CarAlertsTab_elevation-12__3bCyf\",\"elevation-13\":\"CarAlertsTab_elevation-13__2SgX3\",\"elevation-14\":\"CarAlertsTab_elevation-14__3x48J\",\"elevation-15\":\"CarAlertsTab_elevation-15__33GBG\",\"elevation-16\":\"CarAlertsTab_elevation-16__2ZS7F\",\"elevation-17\":\"CarAlertsTab_elevation-17__1WeIY\",\"elevation-18\":\"CarAlertsTab_elevation-18__g3zh2\",\"elevation-19\":\"CarAlertsTab_elevation-19__3E98K\",\"elevation-20\":\"CarAlertsTab_elevation-20__1dmoU\",\"elevation-21\":\"CarAlertsTab_elevation-21__-HD3u\",\"elevation-22\":\"CarAlertsTab_elevation-22__FNdvu\",\"elevation-23\":\"CarAlertsTab_elevation-23__3vTiR\",\"elevation-24\":\"CarAlertsTab_elevation-24__1JfhN\",\"container\":\"CarAlertsTab_container__3oBgo\",\"filtersHeaderContainer\":\"CarAlertsTab_filtersHeaderContainer__163aA\",\"filtersHeader\":\"CarAlertsTab_filtersHeader__1cWvf\",\"filtersPopoverContainer\":\"CarAlertsTab_filtersPopoverContainer__3NXMO\",\"counter\":\"CarAlertsTab_counter__1TjCv\",\"counterList\":\"CarAlertsTab_counterList__iQldL\",\"counterNumber\":\"CarAlertsTab_counterNumber__2ZZZP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"LocalsList_elevation-1__3c6qW\",\"elevation-2\":\"LocalsList_elevation-2__1CUDg\",\"elevation-3\":\"LocalsList_elevation-3__2I-ez\",\"elevation-4\":\"LocalsList_elevation-4__xRWGm\",\"elevation-5\":\"LocalsList_elevation-5__3q6Dw\",\"elevation-6\":\"LocalsList_elevation-6__2L_7T\",\"elevation-7\":\"LocalsList_elevation-7__3U_-5\",\"elevation-8\":\"LocalsList_elevation-8__1IPx_\",\"elevation-9\":\"LocalsList_elevation-9__2Eje5\",\"elevation-10\":\"LocalsList_elevation-10__4YBsf\",\"elevation-11\":\"LocalsList_elevation-11__2SvgE\",\"elevation-12\":\"LocalsList_elevation-12__2Z6Nf\",\"elevation-13\":\"LocalsList_elevation-13__3G8mB\",\"elevation-14\":\"LocalsList_elevation-14__9jr1H\",\"elevation-15\":\"LocalsList_elevation-15__26AiZ\",\"elevation-16\":\"LocalsList_elevation-16__1-cti\",\"elevation-17\":\"LocalsList_elevation-17__3LkAk\",\"elevation-18\":\"LocalsList_elevation-18__2d2zT\",\"elevation-19\":\"LocalsList_elevation-19__2AOnr\",\"elevation-20\":\"LocalsList_elevation-20__11RvZ\",\"elevation-21\":\"LocalsList_elevation-21__3S6pq\",\"elevation-22\":\"LocalsList_elevation-22__tgDOT\",\"elevation-23\":\"LocalsList_elevation-23__TKCqt\",\"elevation-24\":\"LocalsList_elevation-24__12ttx\",\"columnPlate\":\"LocalsList_columnPlate__2J32K\",\"columnBrand\":\"LocalsList_columnBrand__14LUC\",\"columnSpec\":\"LocalsList_columnSpec__1AZy9\",\"tabHeader\":\"LocalsList_tabHeader___4id8\",\"filtersPopoverContainer\":\"LocalsList_filtersPopoverContainer__3OKd_\",\"counterList\":\"LocalsList_counterList__3wgjw\",\"counterNumber\":\"LocalsList_counterNumber__3vSde\",\"rowFlex\":\"LocalsList_rowFlex__10mN_\",\"contentImage\":\"LocalsList_contentImage__3-uzS\",\"img\":\"LocalsList_img__3qQKi\",\"imageDescCell\":\"LocalsList_imageDescCell__22nak\",\"descCell\":\"LocalsList_descCell__3GMJG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"UsersList_elevation-1__CA3WA\",\"elevation-2\":\"UsersList_elevation-2__3ZUT_\",\"elevation-3\":\"UsersList_elevation-3__2naFp\",\"elevation-4\":\"UsersList_elevation-4__27WlM\",\"elevation-5\":\"UsersList_elevation-5__2W5hb\",\"elevation-6\":\"UsersList_elevation-6__NOeaC\",\"elevation-7\":\"UsersList_elevation-7__2WlTv\",\"elevation-8\":\"UsersList_elevation-8__bfwET\",\"elevation-9\":\"UsersList_elevation-9__3UwAu\",\"elevation-10\":\"UsersList_elevation-10___llyr\",\"elevation-11\":\"UsersList_elevation-11__kjo9F\",\"elevation-12\":\"UsersList_elevation-12__FtAix\",\"elevation-13\":\"UsersList_elevation-13__27Aej\",\"elevation-14\":\"UsersList_elevation-14__2HLiL\",\"elevation-15\":\"UsersList_elevation-15__CLB-U\",\"elevation-16\":\"UsersList_elevation-16__2Dy9v\",\"elevation-17\":\"UsersList_elevation-17__3PYTV\",\"elevation-18\":\"UsersList_elevation-18__3vn7p\",\"elevation-19\":\"UsersList_elevation-19__jCcL3\",\"elevation-20\":\"UsersList_elevation-20__30sX-\",\"elevation-21\":\"UsersList_elevation-21__1dwHU\",\"elevation-22\":\"UsersList_elevation-22__3XT6j\",\"elevation-23\":\"UsersList_elevation-23__z5u4Z\",\"elevation-24\":\"UsersList_elevation-24__2KLXs\",\"container\":\"UsersList_container__SucBp\",\"columnPlate\":\"UsersList_columnPlate__377dk\",\"columnBrand\":\"UsersList_columnBrand__1i0xG\",\"columnSpec\":\"UsersList_columnSpec__30YmY\",\"tabHeader\":\"UsersList_tabHeader__3l4ZD\",\"filtersPopoverContainer\":\"UsersList_filtersPopoverContainer__3tdbK\",\"counterList\":\"UsersList_counterList__1lcnk\",\"counterNumber\":\"UsersList_counterNumber__3heHt\",\"rowFlex\":\"UsersList_rowFlex__IMsIA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImportDataScreen_elevation-1__L4Ipu\",\"elevation-2\":\"ImportDataScreen_elevation-2__3BzKb\",\"elevation-3\":\"ImportDataScreen_elevation-3__2UWI5\",\"elevation-4\":\"ImportDataScreen_elevation-4__2RJ21\",\"elevation-5\":\"ImportDataScreen_elevation-5__2CgEO\",\"elevation-6\":\"ImportDataScreen_elevation-6__3f_AG\",\"elevation-7\":\"ImportDataScreen_elevation-7__1Fe6n\",\"elevation-8\":\"ImportDataScreen_elevation-8__2Vx1L\",\"elevation-9\":\"ImportDataScreen_elevation-9__3vvK-\",\"elevation-10\":\"ImportDataScreen_elevation-10__2P6X9\",\"elevation-11\":\"ImportDataScreen_elevation-11__hX_JZ\",\"elevation-12\":\"ImportDataScreen_elevation-12__2OJrO\",\"elevation-13\":\"ImportDataScreen_elevation-13__2XYWw\",\"elevation-14\":\"ImportDataScreen_elevation-14__3MoFg\",\"elevation-15\":\"ImportDataScreen_elevation-15__22dRL\",\"elevation-16\":\"ImportDataScreen_elevation-16__29CmH\",\"elevation-17\":\"ImportDataScreen_elevation-17__3zl5e\",\"elevation-18\":\"ImportDataScreen_elevation-18__3Tp54\",\"elevation-19\":\"ImportDataScreen_elevation-19__2kpzX\",\"elevation-20\":\"ImportDataScreen_elevation-20__2JHQV\",\"elevation-21\":\"ImportDataScreen_elevation-21__3hNwF\",\"elevation-22\":\"ImportDataScreen_elevation-22__1nF9R\",\"elevation-23\":\"ImportDataScreen_elevation-23__caf3G\",\"elevation-24\":\"ImportDataScreen_elevation-24__qCwda\",\"box\":\"ImportDataScreen_box__2ZFQv\",\"buttonsContainer\":\"ImportDataScreen_buttonsContainer__2REqh\",\"button\":\"ImportDataScreen_button__pOwTx\",\"label\":\"ImportDataScreen_label__14BiR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleScreen_elevation-1__2Lm18\",\"elevation-2\":\"VehicleScreen_elevation-2__3E57C\",\"elevation-3\":\"VehicleScreen_elevation-3__BzRJU\",\"elevation-4\":\"VehicleScreen_elevation-4__1Blcc\",\"elevation-5\":\"VehicleScreen_elevation-5__1quvt\",\"elevation-6\":\"VehicleScreen_elevation-6__3P9vf\",\"elevation-7\":\"VehicleScreen_elevation-7__1pPvU\",\"elevation-8\":\"VehicleScreen_elevation-8__1yf2k\",\"elevation-9\":\"VehicleScreen_elevation-9__phd70\",\"elevation-10\":\"VehicleScreen_elevation-10__2AIaT\",\"elevation-11\":\"VehicleScreen_elevation-11__O4mue\",\"elevation-12\":\"VehicleScreen_elevation-12__1l3Xs\",\"elevation-13\":\"VehicleScreen_elevation-13__38V1T\",\"elevation-14\":\"VehicleScreen_elevation-14__25p-u\",\"elevation-15\":\"VehicleScreen_elevation-15__IZ9TM\",\"elevation-16\":\"VehicleScreen_elevation-16__3jM7i\",\"elevation-17\":\"VehicleScreen_elevation-17__3nNA9\",\"elevation-18\":\"VehicleScreen_elevation-18__nSh5L\",\"elevation-19\":\"VehicleScreen_elevation-19__2JGiX\",\"elevation-20\":\"VehicleScreen_elevation-20__g38GD\",\"elevation-21\":\"VehicleScreen_elevation-21__skk71\",\"elevation-22\":\"VehicleScreen_elevation-22__3wP8Z\",\"elevation-23\":\"VehicleScreen_elevation-23__1xpKS\",\"elevation-24\":\"VehicleScreen_elevation-24__31nw3\",\"headerBox\":\"VehicleScreen_headerBox__2Qzxp\",\"headerBoxWarning\":\"VehicleScreen_headerBoxWarning__2oHmr\",\"colorTextWarning\":\"VehicleScreen_colorTextWarning__1Vieg\",\"col\":\"VehicleScreen_col__1BOpN\",\"no-padd\":\"VehicleScreen_no-padd__3uKOe\",\"contentImage\":\"VehicleScreen_contentImage__1ib-y\",\"img\":\"VehicleScreen_img__bQj-u\",\"borderRight\":\"VehicleScreen_borderRight__FoEjd\",\"borderLeft\":\"VehicleScreen_borderLeft__R7iaH\",\"cont\":\"VehicleScreen_cont__13nqA\",\"content\":\"VehicleScreen_content__3PozX\",\"info\":\"VehicleScreen_info__8_nxo\",\"label\":\"VehicleScreen_label__2yBF4\",\"text\":\"VehicleScreen_text__lipg8\",\"point\":\"VehicleScreen_point__1rFVW\",\"pointRed\":\"VehicleScreen_pointRed__2Hof7\",\"pointGreen\":\"VehicleScreen_pointGreen__3cejf\",\"subText\":\"VehicleScreen_subText__1Abmt\",\"divDetailsCar\":\"VehicleScreen_divDetailsCar__3ZFP9\",\"divImage\":\"VehicleScreen_divImage__2kJp3\",\"divDesc\":\"VehicleScreen_divDesc__jvFnS\",\"labelRegistration\":\"VehicleScreen_labelRegistration__jHI9R\",\"labelDetails\":\"VehicleScreen_labelDetails__YRuod\",\"labelLocal\":\"VehicleScreen_labelLocal__2eD0a\",\"labelDetailsColor\":\"VehicleScreen_labelDetailsColor__ri1Rd\",\"button\":\"VehicleScreen_button__1F-t1\",\"divPoint\":\"VehicleScreen_divPoint__22hKS\",\"ignorePadding\":\"VehicleScreen_ignorePadding__1lBAd\",\"itemText\":\"VehicleScreen_itemText__2eoLo\",\"floatingBadge\":\"VehicleScreen_floatingBadge__bmpDW\",\"container\":\"VehicleScreen_container__2_N6w\",\"tabHeader\":\"VehicleScreen_tabHeader__2Czcl\",\"rowFlex\":\"VehicleScreen_rowFlex__2xICZ\",\"filtersPopoverContainer\":\"VehicleScreen_filtersPopoverContainer__3hawd\",\"tour\":\"VehicleScreen_tour__3qDrM\",\"overlay\":\"VehicleScreen_overlay__ZrTNK\",\"overlayText\":\"VehicleScreen_overlayText__3Z3GI\",\"opacity\":\"VehicleScreen_opacity__2kfZl\",\"opacityBackground\":\"VehicleScreen_opacityBackground__32EQu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Popover_elevation-1__3yv3l\",\"elevation-2\":\"Popover_elevation-2__3Fmot\",\"elevation-3\":\"Popover_elevation-3__2n6bH\",\"elevation-4\":\"Popover_elevation-4__1oEhX\",\"elevation-5\":\"Popover_elevation-5__pHp_1\",\"elevation-6\":\"Popover_elevation-6__34WLx\",\"elevation-7\":\"Popover_elevation-7__1rUzP\",\"elevation-8\":\"Popover_elevation-8__bcMHy\",\"elevation-9\":\"Popover_elevation-9__24_AI\",\"elevation-10\":\"Popover_elevation-10__2X8Fy\",\"elevation-11\":\"Popover_elevation-11__2yjMb\",\"elevation-12\":\"Popover_elevation-12__2vxAY\",\"elevation-13\":\"Popover_elevation-13__2wkrM\",\"elevation-14\":\"Popover_elevation-14__LFytd\",\"elevation-15\":\"Popover_elevation-15__2Q-Jb\",\"elevation-16\":\"Popover_elevation-16__3ACPT\",\"elevation-17\":\"Popover_elevation-17__2WUmo\",\"elevation-18\":\"Popover_elevation-18__RNIHr\",\"elevation-19\":\"Popover_elevation-19__2rSHr\",\"elevation-20\":\"Popover_elevation-20__1xKET\",\"elevation-21\":\"Popover_elevation-21__22zyl\",\"elevation-22\":\"Popover_elevation-22__3ZFd9\",\"elevation-23\":\"Popover_elevation-23__32uU1\",\"elevation-24\":\"Popover_elevation-24__3x0KM\",\"content\":\"Popover_content__1MQhE\",\"overlayContainer\":\"Popover_overlayContainer__2PUaI\",\"popoverItem\":\"Popover_popoverItem__1Ymai\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"QuestionYesNo_elevation-1__2Otpb\",\"elevation-2\":\"QuestionYesNo_elevation-2__1jV4Q\",\"elevation-3\":\"QuestionYesNo_elevation-3__1HOFq\",\"elevation-4\":\"QuestionYesNo_elevation-4__3kadv\",\"elevation-5\":\"QuestionYesNo_elevation-5__3eFR-\",\"elevation-6\":\"QuestionYesNo_elevation-6__2yoET\",\"elevation-7\":\"QuestionYesNo_elevation-7__t0KXa\",\"elevation-8\":\"QuestionYesNo_elevation-8__hPGyM\",\"elevation-9\":\"QuestionYesNo_elevation-9__2LnPq\",\"elevation-10\":\"QuestionYesNo_elevation-10__1puLc\",\"elevation-11\":\"QuestionYesNo_elevation-11__C_OgY\",\"elevation-12\":\"QuestionYesNo_elevation-12__1vOxZ\",\"elevation-13\":\"QuestionYesNo_elevation-13__2LCPJ\",\"elevation-14\":\"QuestionYesNo_elevation-14__2joVx\",\"elevation-15\":\"QuestionYesNo_elevation-15__1t8Is\",\"elevation-16\":\"QuestionYesNo_elevation-16__2Os4Z\",\"elevation-17\":\"QuestionYesNo_elevation-17__1iYI4\",\"elevation-18\":\"QuestionYesNo_elevation-18__XiDLw\",\"elevation-19\":\"QuestionYesNo_elevation-19__2Cu-0\",\"elevation-20\":\"QuestionYesNo_elevation-20__2I6Qp\",\"elevation-21\":\"QuestionYesNo_elevation-21__16dCE\",\"elevation-22\":\"QuestionYesNo_elevation-22__3oyNI\",\"elevation-23\":\"QuestionYesNo_elevation-23__3IIwD\",\"elevation-24\":\"QuestionYesNo_elevation-24__1OYG3\",\"titleContainer\":\"QuestionYesNo_titleContainer__35Ogh\",\"textTitle\":\"QuestionYesNo_textTitle__3CIjF\",\"messageContainer\":\"QuestionYesNo_messageContainer__3NuI6\",\"textMessage\":\"QuestionYesNo_textMessage__OPkNh\",\"buttons_container\":\"QuestionYesNo_buttons_container__2wXjN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Box_elevation-1__3AQXr\",\"elevation-2\":\"Box_elevation-2__1JInC\",\"elevation-3\":\"Box_elevation-3__3JC5y\",\"elevation-4\":\"Box_elevation-4__2gXjT\",\"elevation-5\":\"Box_elevation-5__154I_\",\"elevation-6\":\"Box_elevation-6__aeWTz\",\"elevation-7\":\"Box_elevation-7__5BB21\",\"elevation-8\":\"Box_elevation-8__Zcfgb\",\"elevation-9\":\"Box_elevation-9__18sXC\",\"elevation-10\":\"Box_elevation-10__EB_Ka\",\"elevation-11\":\"Box_elevation-11__30zMt\",\"elevation-12\":\"Box_elevation-12__25f67\",\"elevation-13\":\"Box_elevation-13__1G_7i\",\"elevation-14\":\"Box_elevation-14__2Ufay\",\"elevation-15\":\"Box_elevation-15__N1myu\",\"elevation-16\":\"Box_elevation-16__2HUQ3\",\"elevation-17\":\"Box_elevation-17__2_Yim\",\"elevation-18\":\"Box_elevation-18__2Tsqi\",\"elevation-19\":\"Box_elevation-19__1xCGd\",\"elevation-20\":\"Box_elevation-20__1FCEK\",\"elevation-21\":\"Box_elevation-21__2ixIZ\",\"elevation-22\":\"Box_elevation-22__2a_pg\",\"elevation-23\":\"Box_elevation-23__r8m95\",\"elevation-24\":\"Box_elevation-24__2Qm1F\",\"container\":\"Box_container__1AcNW\",\"header\":\"Box_header__2QjjA\",\"headerTitle\":\"Box_headerTitle__3qKwC\",\"subTitle\":\"Box_subTitle__3ewm9\",\"headerOptions\":\"Box_headerOptions__hg6AX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Badge_elevation-1__3dV9P\",\"elevation-2\":\"Badge_elevation-2__UHhJH\",\"elevation-3\":\"Badge_elevation-3__3To8c\",\"elevation-4\":\"Badge_elevation-4__1UMun\",\"elevation-5\":\"Badge_elevation-5__1cJg5\",\"elevation-6\":\"Badge_elevation-6__1BUBo\",\"elevation-7\":\"Badge_elevation-7__2_5hr\",\"elevation-8\":\"Badge_elevation-8__1Q4C3\",\"elevation-9\":\"Badge_elevation-9__25C3y\",\"elevation-10\":\"Badge_elevation-10__UOvhq\",\"elevation-11\":\"Badge_elevation-11__3hun4\",\"elevation-12\":\"Badge_elevation-12__3KXt-\",\"elevation-13\":\"Badge_elevation-13__1FKj6\",\"elevation-14\":\"Badge_elevation-14__10DqT\",\"elevation-15\":\"Badge_elevation-15__2p3xH\",\"elevation-16\":\"Badge_elevation-16__2BQgj\",\"elevation-17\":\"Badge_elevation-17__2JVHu\",\"elevation-18\":\"Badge_elevation-18__3Sd61\",\"elevation-19\":\"Badge_elevation-19__3znAY\",\"elevation-20\":\"Badge_elevation-20__3jPBl\",\"elevation-21\":\"Badge_elevation-21__1V1Xo\",\"elevation-22\":\"Badge_elevation-22__2Z3Tw\",\"elevation-23\":\"Badge_elevation-23__2KfHl\",\"elevation-24\":\"Badge_elevation-24__1POu5\",\"badge\":\"Badge_badge__1Ds6Y\",\"sizeNormal\":\"Badge_sizeNormal__2jQC0\",\"sizeRound\":\"Badge_sizeRound__3n4NT\",\"sizeRoundSmall\":\"Badge_sizeRoundSmall__3G4Z2\",\"primaryLight\":\"Badge_primaryLight__qnlPB\",\"primaryLightInverted\":\"Badge_primaryLightInverted__3ob8s\",\"primaryDark\":\"Badge_primaryDark__17826\",\"primaryDark10\":\"Badge_primaryDark10__ConZz\",\"danger\":\"Badge_danger__2JKsi\",\"success\":\"Badge_success__2vLDw\",\"warning\":\"Badge_warning__2U69C\",\"inactive\":\"Badge_inactive__cyhvW\",\"default\":\"Badge_default__3Vb7S\",\"waitingStatus\":\"Badge_waitingStatus__KwcRq\",\"greenAmerica\":\"Badge_greenAmerica__NfzzE\",\"yellowAmerica\":\"Badge_yellowAmerica__3kD5U\",\"outline\":\"Badge_outline__39QIG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"RangeInputPicker_elevation-1__2ndBS\",\"elevation-2\":\"RangeInputPicker_elevation-2__60dK4\",\"elevation-3\":\"RangeInputPicker_elevation-3__U3j4r\",\"elevation-4\":\"RangeInputPicker_elevation-4__25jkQ\",\"elevation-5\":\"RangeInputPicker_elevation-5__N1Eor\",\"elevation-6\":\"RangeInputPicker_elevation-6__3G3kd\",\"elevation-7\":\"RangeInputPicker_elevation-7__3rFbf\",\"elevation-8\":\"RangeInputPicker_elevation-8__15Q9Q\",\"elevation-9\":\"RangeInputPicker_elevation-9__1ya2v\",\"elevation-10\":\"RangeInputPicker_elevation-10__2pgcy\",\"elevation-11\":\"RangeInputPicker_elevation-11__3eu5O\",\"elevation-12\":\"RangeInputPicker_elevation-12__P0AXv\",\"elevation-13\":\"RangeInputPicker_elevation-13__3qIWC\",\"elevation-14\":\"RangeInputPicker_elevation-14__3WDeO\",\"elevation-15\":\"RangeInputPicker_elevation-15__QVDei\",\"elevation-16\":\"RangeInputPicker_elevation-16__2Ku9z\",\"elevation-17\":\"RangeInputPicker_elevation-17__1SFOH\",\"elevation-18\":\"RangeInputPicker_elevation-18__1S03r\",\"elevation-19\":\"RangeInputPicker_elevation-19__2PwZk\",\"elevation-20\":\"RangeInputPicker_elevation-20__1rNqH\",\"elevation-21\":\"RangeInputPicker_elevation-21__2zDc1\",\"elevation-22\":\"RangeInputPicker_elevation-22__29ozX\",\"elevation-23\":\"RangeInputPicker_elevation-23__cb3Os\",\"elevation-24\":\"RangeInputPicker_elevation-24__2KB4-\",\"bold\":\"RangeInputPicker_bold__1Lr8r\",\"light\":\"RangeInputPicker_light__29H-0\",\"break\":\"RangeInputPicker_break__zXVsK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FilterBadge_elevation-1__2rl7r\",\"elevation-2\":\"FilterBadge_elevation-2__2BMvH\",\"elevation-3\":\"FilterBadge_elevation-3__zYMex\",\"elevation-4\":\"FilterBadge_elevation-4__2JNni\",\"elevation-5\":\"FilterBadge_elevation-5__2kGrY\",\"elevation-6\":\"FilterBadge_elevation-6__33P9j\",\"elevation-7\":\"FilterBadge_elevation-7__3IN7x\",\"elevation-8\":\"FilterBadge_elevation-8__1uIoH\",\"elevation-9\":\"FilterBadge_elevation-9__2yHzj\",\"elevation-10\":\"FilterBadge_elevation-10__3gnUJ\",\"elevation-11\":\"FilterBadge_elevation-11__lx7Df\",\"elevation-12\":\"FilterBadge_elevation-12__1zKdj\",\"elevation-13\":\"FilterBadge_elevation-13__2Z9jK\",\"elevation-14\":\"FilterBadge_elevation-14__1m3na\",\"elevation-15\":\"FilterBadge_elevation-15__Ao11T\",\"elevation-16\":\"FilterBadge_elevation-16__1k5eo\",\"elevation-17\":\"FilterBadge_elevation-17__3loD2\",\"elevation-18\":\"FilterBadge_elevation-18__3okvB\",\"elevation-19\":\"FilterBadge_elevation-19__17_mf\",\"elevation-20\":\"FilterBadge_elevation-20__3OoAQ\",\"elevation-21\":\"FilterBadge_elevation-21__2Ipkv\",\"elevation-22\":\"FilterBadge_elevation-22__2lNnW\",\"elevation-23\":\"FilterBadge_elevation-23__2V1yN\",\"elevation-24\":\"FilterBadge_elevation-24__2rHnA\",\"badge\":\"FilterBadge_badge__3ay4a\",\"title\":\"FilterBadge_title__27NvR\",\"value\":\"FilterBadge_value__2uWxH\",\"removeButton\":\"FilterBadge_removeButton__1tFUc\",\"primaryLight\":\"FilterBadge_primaryLight__2DrsG\",\"primaryLightInverted\":\"FilterBadge_primaryLightInverted__2uRm6\",\"primaryDark\":\"FilterBadge_primaryDark__1Jfkk\",\"inactive\":\"FilterBadge_inactive__3D28G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ReportColumnFilterModal_elevation-1__16wCa\",\"elevation-2\":\"ReportColumnFilterModal_elevation-2__3M194\",\"elevation-3\":\"ReportColumnFilterModal_elevation-3__37YOx\",\"elevation-4\":\"ReportColumnFilterModal_elevation-4__2Hx8R\",\"elevation-5\":\"ReportColumnFilterModal_elevation-5__2_M-T\",\"elevation-6\":\"ReportColumnFilterModal_elevation-6__oHjre\",\"elevation-7\":\"ReportColumnFilterModal_elevation-7__2h_jZ\",\"elevation-8\":\"ReportColumnFilterModal_elevation-8__MZTaB\",\"elevation-9\":\"ReportColumnFilterModal_elevation-9__3BdG0\",\"elevation-10\":\"ReportColumnFilterModal_elevation-10__3kuoL\",\"elevation-11\":\"ReportColumnFilterModal_elevation-11__ZQBX3\",\"elevation-12\":\"ReportColumnFilterModal_elevation-12__1h5sC\",\"elevation-13\":\"ReportColumnFilterModal_elevation-13__2vpiE\",\"elevation-14\":\"ReportColumnFilterModal_elevation-14__1gZjF\",\"elevation-15\":\"ReportColumnFilterModal_elevation-15__394Ar\",\"elevation-16\":\"ReportColumnFilterModal_elevation-16__2d-YL\",\"elevation-17\":\"ReportColumnFilterModal_elevation-17__1T3Ji\",\"elevation-18\":\"ReportColumnFilterModal_elevation-18__1NOA6\",\"elevation-19\":\"ReportColumnFilterModal_elevation-19__gX9Tp\",\"elevation-20\":\"ReportColumnFilterModal_elevation-20__3dP5A\",\"elevation-21\":\"ReportColumnFilterModal_elevation-21__3XiKO\",\"elevation-22\":\"ReportColumnFilterModal_elevation-22__1h8w6\",\"elevation-23\":\"ReportColumnFilterModal_elevation-23__EVsML\",\"elevation-24\":\"ReportColumnFilterModal_elevation-24__1s67T\",\"modalContainer\":\"ReportColumnFilterModal_modalContainer__1FEL0\",\"scrollable\":\"ReportColumnFilterModal_scrollable__9k6RG\",\"closeButton\":\"ReportColumnFilterModal_closeButton__1Zl8q\",\"buttonContainer\":\"ReportColumnFilterModal_buttonContainer__1M_61\",\"title\":\"ReportColumnFilterModal_title__1ci3z\",\"subtitle\":\"ReportColumnFilterModal_subtitle__12EFY\",\"description\":\"ReportColumnFilterModal_description__3-ej1\",\"pagination\":\"ReportColumnFilterModal_pagination__8aENi\",\"checkBoxContainer\":\"ReportColumnFilterModal_checkBoxContainer__1iSUf\",\"container\":\"ReportColumnFilterModal_container__2eneA\",\"checkmark\":\"ReportColumnFilterModal_checkmark__200Tp\",\"checkBoxText\":\"ReportColumnFilterModal_checkBoxText__3sYeP\",\"overlay\":\"ReportColumnFilterModal_overlay__2Ot3n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"QRCode_elevation-1__-Sv7K\",\"elevation-2\":\"QRCode_elevation-2__2iDrC\",\"elevation-3\":\"QRCode_elevation-3__1687d\",\"elevation-4\":\"QRCode_elevation-4__3079_\",\"elevation-5\":\"QRCode_elevation-5__34HCj\",\"elevation-6\":\"QRCode_elevation-6__3vi2T\",\"elevation-7\":\"QRCode_elevation-7__1uwzR\",\"elevation-8\":\"QRCode_elevation-8__2cqiC\",\"elevation-9\":\"QRCode_elevation-9__cOf_m\",\"elevation-10\":\"QRCode_elevation-10__3iTer\",\"elevation-11\":\"QRCode_elevation-11__2OK4q\",\"elevation-12\":\"QRCode_elevation-12__1hHkm\",\"elevation-13\":\"QRCode_elevation-13__3bKDb\",\"elevation-14\":\"QRCode_elevation-14__xtoaz\",\"elevation-15\":\"QRCode_elevation-15__QHXKH\",\"elevation-16\":\"QRCode_elevation-16__1Y3Vl\",\"elevation-17\":\"QRCode_elevation-17__1pWaD\",\"elevation-18\":\"QRCode_elevation-18__11sjP\",\"elevation-19\":\"QRCode_elevation-19__i5unr\",\"elevation-20\":\"QRCode_elevation-20__2Adol\",\"elevation-21\":\"QRCode_elevation-21__3GuHY\",\"elevation-22\":\"QRCode_elevation-22__3bnnh\",\"elevation-23\":\"QRCode_elevation-23__1w_Md\",\"elevation-24\":\"QRCode_elevation-24__9GfUH\",\"container\":\"QRCode_container__3dDV0\",\"label\":\"QRCode_label__2frii\",\"qrCode\":\"QRCode_qrCode__3YTZ8\",\"closeButtonModal\":\"QRCode_closeButtonModal__1KfaQ\",\"messageContainer\":\"QRCode_messageContainer__c5IFK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InputSearch_elevation-1__3ob3Z\",\"elevation-2\":\"InputSearch_elevation-2__2errc\",\"elevation-3\":\"InputSearch_elevation-3__wqi77\",\"elevation-4\":\"InputSearch_elevation-4__2ynJg\",\"elevation-5\":\"InputSearch_elevation-5__2Vhxv\",\"elevation-6\":\"InputSearch_elevation-6__34B6L\",\"elevation-7\":\"InputSearch_elevation-7__2OqIJ\",\"elevation-8\":\"InputSearch_elevation-8__1oKz4\",\"elevation-9\":\"InputSearch_elevation-9__3wPP_\",\"elevation-10\":\"InputSearch_elevation-10__30ldJ\",\"elevation-11\":\"InputSearch_elevation-11__3wL6Q\",\"elevation-12\":\"InputSearch_elevation-12__wW9Qz\",\"elevation-13\":\"InputSearch_elevation-13__32ub7\",\"elevation-14\":\"InputSearch_elevation-14__3FDBV\",\"elevation-15\":\"InputSearch_elevation-15__1SzU0\",\"elevation-16\":\"InputSearch_elevation-16__3VmOP\",\"elevation-17\":\"InputSearch_elevation-17__wi69q\",\"elevation-18\":\"InputSearch_elevation-18__1NLrf\",\"elevation-19\":\"InputSearch_elevation-19__3_98O\",\"elevation-20\":\"InputSearch_elevation-20__1MENX\",\"elevation-21\":\"InputSearch_elevation-21__6WAC6\",\"elevation-22\":\"InputSearch_elevation-22__2BdXg\",\"elevation-23\":\"InputSearch_elevation-23__2UnSB\",\"elevation-24\":\"InputSearch_elevation-24__1vgoa\",\"inputContainer\":\"InputSearch_inputContainer__1bh3u\",\"inputContent\":\"InputSearch_inputContent__Yrgt-\",\"inputImage\":\"InputSearch_inputImage__21W4D\",\"pointer\":\"InputSearch_pointer__150pW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ListMaintenancesScreen_elevation-1__2RXGh\",\"elevation-2\":\"ListMaintenancesScreen_elevation-2__3RY7I\",\"elevation-3\":\"ListMaintenancesScreen_elevation-3__2gw34\",\"elevation-4\":\"ListMaintenancesScreen_elevation-4__1Y2ko\",\"elevation-5\":\"ListMaintenancesScreen_elevation-5__3QVRh\",\"elevation-6\":\"ListMaintenancesScreen_elevation-6__UkImb\",\"elevation-7\":\"ListMaintenancesScreen_elevation-7__39DVy\",\"elevation-8\":\"ListMaintenancesScreen_elevation-8__2XC6g\",\"elevation-9\":\"ListMaintenancesScreen_elevation-9__1_tIx\",\"elevation-10\":\"ListMaintenancesScreen_elevation-10__3cCSg\",\"elevation-11\":\"ListMaintenancesScreen_elevation-11__1gol3\",\"elevation-12\":\"ListMaintenancesScreen_elevation-12__e_4qW\",\"elevation-13\":\"ListMaintenancesScreen_elevation-13__33dKb\",\"elevation-14\":\"ListMaintenancesScreen_elevation-14__168EA\",\"elevation-15\":\"ListMaintenancesScreen_elevation-15__3tcF9\",\"elevation-16\":\"ListMaintenancesScreen_elevation-16__3CSPo\",\"elevation-17\":\"ListMaintenancesScreen_elevation-17__jysnT\",\"elevation-18\":\"ListMaintenancesScreen_elevation-18__ikJVR\",\"elevation-19\":\"ListMaintenancesScreen_elevation-19__2rAy4\",\"elevation-20\":\"ListMaintenancesScreen_elevation-20__335nN\",\"elevation-21\":\"ListMaintenancesScreen_elevation-21__ZY9dH\",\"elevation-22\":\"ListMaintenancesScreen_elevation-22__1zew5\",\"elevation-23\":\"ListMaintenancesScreen_elevation-23__1kEuY\",\"elevation-24\":\"ListMaintenancesScreen_elevation-24__2lQVf\",\"tabHeader\":\"ListMaintenancesScreen_tabHeader__eWmnd\",\"rowFlex\":\"ListMaintenancesScreen_rowFlex__rqVVc\",\"flexColumn\":\"ListMaintenancesScreen_flexColumn__PLz9N\",\"keepText\":\"ListMaintenancesScreen_keepText__2B6W3\",\"button\":\"ListMaintenancesScreen_button__10Qty\",\"filtersPopoverContainer\":\"ListMaintenancesScreen_filtersPopoverContainer__2knSL\",\"responsible\":\"ListMaintenancesScreen_responsible__3S07S\",\"icon\":\"ListMaintenancesScreen_icon__3GLDZ\",\"counterList\":\"ListMaintenancesScreen_counterList__2L29s\",\"counterNumber\":\"ListMaintenancesScreen_counterNumber__3im9b\",\"imageDescCell\":\"ListMaintenancesScreen_imageDescCell__33hiN\",\"descCell\":\"ListMaintenancesScreen_descCell__10LmE\",\"contentImage\":\"ListMaintenancesScreen_contentImage__1Pdm6\",\"img\":\"ListMaintenancesScreen_img__xW5vC\",\"columnPlate\":\"ListMaintenancesScreen_columnPlate__32vQ-\",\"columnBrand\":\"ListMaintenancesScreen_columnBrand__1bttk\",\"columnSpec\":\"ListMaintenancesScreen_columnSpec__GnCk5\",\"primaryLight\":\"ListMaintenancesScreen_primaryLight__2p01F\",\"primaryLightInverted\":\"ListMaintenancesScreen_primaryLightInverted__31XTD\",\"primaryDark\":\"ListMaintenancesScreen_primaryDark__1WLCm\",\"danger\":\"ListMaintenancesScreen_danger__17xGz\",\"success\":\"ListMaintenancesScreen_success__2yZLf\",\"warning\":\"ListMaintenancesScreen_warning__3168Z\",\"inactive\":\"ListMaintenancesScreen_inactive__ZQRjL\",\"default\":\"ListMaintenancesScreen_default__3kI1T\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VerificationExistModal_elevation-1__300tG\",\"elevation-2\":\"VerificationExistModal_elevation-2__1nzno\",\"elevation-3\":\"VerificationExistModal_elevation-3__2D8yk\",\"elevation-4\":\"VerificationExistModal_elevation-4__2itQo\",\"elevation-5\":\"VerificationExistModal_elevation-5__3HRDv\",\"elevation-6\":\"VerificationExistModal_elevation-6__2ROm7\",\"elevation-7\":\"VerificationExistModal_elevation-7__M6_MO\",\"elevation-8\":\"VerificationExistModal_elevation-8__3KdBP\",\"elevation-9\":\"VerificationExistModal_elevation-9___x62L\",\"elevation-10\":\"VerificationExistModal_elevation-10__27S3I\",\"elevation-11\":\"VerificationExistModal_elevation-11__61WMr\",\"elevation-12\":\"VerificationExistModal_elevation-12__2tbGa\",\"elevation-13\":\"VerificationExistModal_elevation-13__2nbVg\",\"elevation-14\":\"VerificationExistModal_elevation-14__18Zhz\",\"elevation-15\":\"VerificationExistModal_elevation-15__3fjXh\",\"elevation-16\":\"VerificationExistModal_elevation-16__2FbAf\",\"elevation-17\":\"VerificationExistModal_elevation-17__2-BHX\",\"elevation-18\":\"VerificationExistModal_elevation-18__gre5j\",\"elevation-19\":\"VerificationExistModal_elevation-19__-3HUb\",\"elevation-20\":\"VerificationExistModal_elevation-20__3vmyO\",\"elevation-21\":\"VerificationExistModal_elevation-21__2ivCP\",\"elevation-22\":\"VerificationExistModal_elevation-22__25ctf\",\"elevation-23\":\"VerificationExistModal_elevation-23__3YGGA\",\"elevation-24\":\"VerificationExistModal_elevation-24__3gfpR\",\"textTitle\":\"VerificationExistModal_textTitle__2CQ4N\",\"messageContainer\":\"VerificationExistModal_messageContainer__286b_\",\"textMessage\":\"VerificationExistModal_textMessage__1kczD\",\"buttonsContainer\":\"VerificationExistModal_buttonsContainer__5cwLX\",\"button\":\"VerificationExistModal_button__1ZjgH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"SortingDropdown_elevation-1__3EKyO\",\"elevation-2\":\"SortingDropdown_elevation-2__DUYbc\",\"elevation-3\":\"SortingDropdown_elevation-3__2BQvk\",\"elevation-4\":\"SortingDropdown_elevation-4__2Kzx2\",\"elevation-5\":\"SortingDropdown_elevation-5__ej6Mt\",\"elevation-6\":\"SortingDropdown_elevation-6__3mcXa\",\"elevation-7\":\"SortingDropdown_elevation-7__3JyCI\",\"elevation-8\":\"SortingDropdown_elevation-8__31TIB\",\"elevation-9\":\"SortingDropdown_elevation-9__2m_DF\",\"elevation-10\":\"SortingDropdown_elevation-10__245lK\",\"elevation-11\":\"SortingDropdown_elevation-11__1UchF\",\"elevation-12\":\"SortingDropdown_elevation-12__2gsPU\",\"elevation-13\":\"SortingDropdown_elevation-13__1IFYT\",\"elevation-14\":\"SortingDropdown_elevation-14__3_ab4\",\"elevation-15\":\"SortingDropdown_elevation-15__2kV9H\",\"elevation-16\":\"SortingDropdown_elevation-16__2K0Il\",\"elevation-17\":\"SortingDropdown_elevation-17__qBIsb\",\"elevation-18\":\"SortingDropdown_elevation-18__1VZKh\",\"elevation-19\":\"SortingDropdown_elevation-19__2aq8n\",\"elevation-20\":\"SortingDropdown_elevation-20__3Ji23\",\"elevation-21\":\"SortingDropdown_elevation-21__2ZMMB\",\"elevation-22\":\"SortingDropdown_elevation-22__wxi1q\",\"elevation-23\":\"SortingDropdown_elevation-23__eHdVH\",\"elevation-24\":\"SortingDropdown_elevation-24__2v7YX\",\"sortingDropdown\":\"SortingDropdown_sortingDropdown__3LGe4\",\"content\":\"SortingDropdown_content__12a4l\",\"options\":\"SortingDropdown_options__2Foy9\",\"option\":\"SortingDropdown_option__c-Np2\",\"selected\":\"SortingDropdown_selected__73Lcb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleModelList_elevation-1__aMTmO\",\"elevation-2\":\"VehicleModelList_elevation-2__BVhk4\",\"elevation-3\":\"VehicleModelList_elevation-3__QUVKJ\",\"elevation-4\":\"VehicleModelList_elevation-4__3JCHY\",\"elevation-5\":\"VehicleModelList_elevation-5__3QINb\",\"elevation-6\":\"VehicleModelList_elevation-6__1pL8I\",\"elevation-7\":\"VehicleModelList_elevation-7__RVZkb\",\"elevation-8\":\"VehicleModelList_elevation-8__2zkZj\",\"elevation-9\":\"VehicleModelList_elevation-9__AIhAM\",\"elevation-10\":\"VehicleModelList_elevation-10__Mr8Kx\",\"elevation-11\":\"VehicleModelList_elevation-11__1AXFE\",\"elevation-12\":\"VehicleModelList_elevation-12__tPRCU\",\"elevation-13\":\"VehicleModelList_elevation-13__2iH4L\",\"elevation-14\":\"VehicleModelList_elevation-14__2_r8E\",\"elevation-15\":\"VehicleModelList_elevation-15__2iZWT\",\"elevation-16\":\"VehicleModelList_elevation-16__1ywMf\",\"elevation-17\":\"VehicleModelList_elevation-17__2WqIu\",\"elevation-18\":\"VehicleModelList_elevation-18__azn-z\",\"elevation-19\":\"VehicleModelList_elevation-19__18EjB\",\"elevation-20\":\"VehicleModelList_elevation-20__109fG\",\"elevation-21\":\"VehicleModelList_elevation-21__2lWww\",\"elevation-22\":\"VehicleModelList_elevation-22__238Js\",\"elevation-23\":\"VehicleModelList_elevation-23__1J93Z\",\"elevation-24\":\"VehicleModelList_elevation-24__G49ZK\",\"columnPlate\":\"VehicleModelList_columnPlate__1f5Tt\",\"columnBrand\":\"VehicleModelList_columnBrand__3MfiN\",\"columnSpec\":\"VehicleModelList_columnSpec__36xAj\",\"tabHeader\":\"VehicleModelList_tabHeader__2_NlH\",\"filtersPopoverContainer\":\"VehicleModelList_filtersPopoverContainer__2P3vR\",\"counterList\":\"VehicleModelList_counterList__6kf2l\",\"counterNumber\":\"VehicleModelList_counterNumber__21slM\",\"rowFlex\":\"VehicleModelList_rowFlex__KuW0v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"LanguagesTab_elevation-1__2Zpwm\",\"elevation-2\":\"LanguagesTab_elevation-2__1u2nL\",\"elevation-3\":\"LanguagesTab_elevation-3__IRvss\",\"elevation-4\":\"LanguagesTab_elevation-4__1Krf1\",\"elevation-5\":\"LanguagesTab_elevation-5__2STV8\",\"elevation-6\":\"LanguagesTab_elevation-6__2Cc6l\",\"elevation-7\":\"LanguagesTab_elevation-7__3Ur2_\",\"elevation-8\":\"LanguagesTab_elevation-8__1MILj\",\"elevation-9\":\"LanguagesTab_elevation-9__3sQTD\",\"elevation-10\":\"LanguagesTab_elevation-10__1WhQJ\",\"elevation-11\":\"LanguagesTab_elevation-11__1ULbi\",\"elevation-12\":\"LanguagesTab_elevation-12__gTXkD\",\"elevation-13\":\"LanguagesTab_elevation-13__26Wae\",\"elevation-14\":\"LanguagesTab_elevation-14__1tHFB\",\"elevation-15\":\"LanguagesTab_elevation-15__GOCQt\",\"elevation-16\":\"LanguagesTab_elevation-16__3ZBAo\",\"elevation-17\":\"LanguagesTab_elevation-17__3ksoe\",\"elevation-18\":\"LanguagesTab_elevation-18__3jsoD\",\"elevation-19\":\"LanguagesTab_elevation-19__6D55v\",\"elevation-20\":\"LanguagesTab_elevation-20__2jrdj\",\"elevation-21\":\"LanguagesTab_elevation-21__3_Q2l\",\"elevation-22\":\"LanguagesTab_elevation-22__2Ar6U\",\"elevation-23\":\"LanguagesTab_elevation-23__3b3ql\",\"elevation-24\":\"LanguagesTab_elevation-24__1pgWJ\",\"tabs\":\"LanguagesTab_tabs__3wsg5\",\"tab\":\"LanguagesTab_tab__tAdqj\",\"active\":\"LanguagesTab_active__XLIgS\",\"invalid\":\"LanguagesTab_invalid__KeFFv\",\"languageDefault\":\"LanguagesTab_languageDefault__1bW6H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ContentManagement_elevation-1__H49vi\",\"elevation-2\":\"ContentManagement_elevation-2__1ZtL4\",\"elevation-3\":\"ContentManagement_elevation-3__1M57v\",\"elevation-4\":\"ContentManagement_elevation-4__1bmlW\",\"elevation-5\":\"ContentManagement_elevation-5__3kGHJ\",\"elevation-6\":\"ContentManagement_elevation-6__PQnIL\",\"elevation-7\":\"ContentManagement_elevation-7___ObNB\",\"elevation-8\":\"ContentManagement_elevation-8__1nU12\",\"elevation-9\":\"ContentManagement_elevation-9__2Z5S3\",\"elevation-10\":\"ContentManagement_elevation-10__3jMXN\",\"elevation-11\":\"ContentManagement_elevation-11__1G6Sm\",\"elevation-12\":\"ContentManagement_elevation-12__2HByJ\",\"elevation-13\":\"ContentManagement_elevation-13__3NucH\",\"elevation-14\":\"ContentManagement_elevation-14__-Zvz8\",\"elevation-15\":\"ContentManagement_elevation-15__2ECDd\",\"elevation-16\":\"ContentManagement_elevation-16__avUTV\",\"elevation-17\":\"ContentManagement_elevation-17__CtOXm\",\"elevation-18\":\"ContentManagement_elevation-18__YozHh\",\"elevation-19\":\"ContentManagement_elevation-19__1A7UG\",\"elevation-20\":\"ContentManagement_elevation-20__1hKL7\",\"elevation-21\":\"ContentManagement_elevation-21__3BPL2\",\"elevation-22\":\"ContentManagement_elevation-22__nuWp7\",\"elevation-23\":\"ContentManagement_elevation-23__Dqfr7\",\"elevation-24\":\"ContentManagement_elevation-24__36vwQ\",\"container\":\"ContentManagement_container__3J8LM\",\"innerContainer\":\"ContentManagement_innerContainer__3Gy3b\",\"description\":\"ContentManagement_description__3QInr\",\"selectContainer\":\"ContentManagement_selectContainer__KToo-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CompanyFiltersScreen_elevation-1__19lA2\",\"elevation-2\":\"CompanyFiltersScreen_elevation-2__cRIfu\",\"elevation-3\":\"CompanyFiltersScreen_elevation-3__34KMc\",\"elevation-4\":\"CompanyFiltersScreen_elevation-4__1-oIg\",\"elevation-5\":\"CompanyFiltersScreen_elevation-5__3pIar\",\"elevation-6\":\"CompanyFiltersScreen_elevation-6__3Wg9D\",\"elevation-7\":\"CompanyFiltersScreen_elevation-7__1-Akt\",\"elevation-8\":\"CompanyFiltersScreen_elevation-8__rGKR1\",\"elevation-9\":\"CompanyFiltersScreen_elevation-9__VzkPJ\",\"elevation-10\":\"CompanyFiltersScreen_elevation-10__1nSIL\",\"elevation-11\":\"CompanyFiltersScreen_elevation-11__1RmHM\",\"elevation-12\":\"CompanyFiltersScreen_elevation-12__iZw-2\",\"elevation-13\":\"CompanyFiltersScreen_elevation-13__1rik4\",\"elevation-14\":\"CompanyFiltersScreen_elevation-14__Fl9dr\",\"elevation-15\":\"CompanyFiltersScreen_elevation-15__Pvj91\",\"elevation-16\":\"CompanyFiltersScreen_elevation-16__3O7is\",\"elevation-17\":\"CompanyFiltersScreen_elevation-17__1z8ru\",\"elevation-18\":\"CompanyFiltersScreen_elevation-18__3cAIh\",\"elevation-19\":\"CompanyFiltersScreen_elevation-19__3urBm\",\"elevation-20\":\"CompanyFiltersScreen_elevation-20__1WUs5\",\"elevation-21\":\"CompanyFiltersScreen_elevation-21__3Y64K\",\"elevation-22\":\"CompanyFiltersScreen_elevation-22__2AzPk\",\"elevation-23\":\"CompanyFiltersScreen_elevation-23__3_W8-\",\"elevation-24\":\"CompanyFiltersScreen_elevation-24__1WH_J\",\"bold\":\"CompanyFiltersScreen_bold__luLSB\",\"formContent\":\"CompanyFiltersScreen_formContent__2C-0F\",\"buttonsFooter\":\"CompanyFiltersScreen_buttonsFooter__3OfkK\",\"dateRangeCustom\":\"CompanyFiltersScreen_dateRangeCustom__1JlXa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VerificationScreen_elevation-1__3S5-K\",\"elevation-2\":\"VerificationScreen_elevation-2__l_FfA\",\"elevation-3\":\"VerificationScreen_elevation-3__AFDaD\",\"elevation-4\":\"VerificationScreen_elevation-4__1HtfT\",\"elevation-5\":\"VerificationScreen_elevation-5__LLBn2\",\"elevation-6\":\"VerificationScreen_elevation-6__3qrKI\",\"elevation-7\":\"VerificationScreen_elevation-7___GNGD\",\"elevation-8\":\"VerificationScreen_elevation-8__1gzKY\",\"elevation-9\":\"VerificationScreen_elevation-9__2XEnm\",\"elevation-10\":\"VerificationScreen_elevation-10__1ER-L\",\"elevation-11\":\"VerificationScreen_elevation-11__1uhME\",\"elevation-12\":\"VerificationScreen_elevation-12__2YvfV\",\"elevation-13\":\"VerificationScreen_elevation-13__JPc34\",\"elevation-14\":\"VerificationScreen_elevation-14__18IwL\",\"elevation-15\":\"VerificationScreen_elevation-15__2osQL\",\"elevation-16\":\"VerificationScreen_elevation-16__3N8c_\",\"elevation-17\":\"VerificationScreen_elevation-17__1gAyK\",\"elevation-18\":\"VerificationScreen_elevation-18__6jdL8\",\"elevation-19\":\"VerificationScreen_elevation-19___njwj\",\"elevation-20\":\"VerificationScreen_elevation-20__3WjuH\",\"elevation-21\":\"VerificationScreen_elevation-21__2srCX\",\"elevation-22\":\"VerificationScreen_elevation-22__1RQKC\",\"elevation-23\":\"VerificationScreen_elevation-23__cxenk\",\"elevation-24\":\"VerificationScreen_elevation-24__3_rYI\",\"box\":\"VerificationScreen_box__WrgxP\",\"header\":\"VerificationScreen_header__1j8kq\",\"icon\":\"VerificationScreen_icon__1WdGA\",\"content\":\"VerificationScreen_content__1TZ3v\",\"buttonsContainer\":\"VerificationScreen_buttonsContainer__2Fi3u\",\"button\":\"VerificationScreen_button__oRY6j\",\"label\":\"VerificationScreen_label__1SofG\",\"checkboxArea\":\"VerificationScreen_checkboxArea__3TY6V\",\"addIcon\":\"VerificationScreen_addIcon__Wy2EN\",\"fileArea\":\"VerificationScreen_fileArea__wIr5l\",\"groupRefundTreated\":\"VerificationScreen_groupRefundTreated__2WeB9\",\"groupSpinner\":\"VerificationScreen_groupSpinner__16uc6\",\"groupInputRefundTreated\":\"VerificationScreen_groupInputRefundTreated__KW5_O\",\"spinner\":\"VerificationScreen_spinner__20T1Y\",\"placeholder\":\"VerificationScreen_placeholder__FDbFu\",\"labelSpinner\":\"VerificationScreen_labelSpinner__1sB3g\",\"selected\":\"VerificationScreen_selected__1Uo1u\",\"notSelected\":\"VerificationScreen_notSelected__2WTlB\",\"spinnerDetails\":\"VerificationScreen_spinnerDetails__1auXA\",\"filtersPopoverContainer\":\"VerificationScreen_filtersPopoverContainer__EJ42B\",\"counterList\":\"VerificationScreen_counterList__1VDza\",\"counter\":\"VerificationScreen_counter__3RdBK\",\"counterNumber\":\"VerificationScreen_counterNumber__ewbl5\",\"datepickerRow\":\"VerificationScreen_datepickerRow__WWKSO\",\"badgeRow\":\"VerificationScreen_badgeRow__1KVdN\",\"sizeBadge\":\"VerificationScreen_sizeBadge__3u2mc\",\"dateArea\":\"VerificationScreen_dateArea__BeYMR\",\"refundTreatedArea\":\"VerificationScreen_refundTreatedArea__XpaHL\",\"panelSearch\":\"VerificationScreen_panelSearch__1KYDh\",\"searchValues\":\"VerificationScreen_searchValues__3qSHW\",\"searchResults\":\"VerificationScreen_searchResults__2F1h1\",\"itemResults\":\"VerificationScreen_itemResults__3-sJC\",\"moneyColumn\":\"VerificationScreen_moneyColumn__2Ry2y\",\"rowCounters\":\"VerificationScreen_rowCounters__4CYA_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlertsScreen_elevation-1__Sm7i8\",\"elevation-2\":\"AlertsScreen_elevation-2__3l1Zd\",\"elevation-3\":\"AlertsScreen_elevation-3__x5rZx\",\"elevation-4\":\"AlertsScreen_elevation-4__Lyg_L\",\"elevation-5\":\"AlertsScreen_elevation-5__15Rbi\",\"elevation-6\":\"AlertsScreen_elevation-6__12aVV\",\"elevation-7\":\"AlertsScreen_elevation-7__3PhcI\",\"elevation-8\":\"AlertsScreen_elevation-8__3Aq0w\",\"elevation-9\":\"AlertsScreen_elevation-9__2yP_P\",\"elevation-10\":\"AlertsScreen_elevation-10__1dian\",\"elevation-11\":\"AlertsScreen_elevation-11__3m-OX\",\"elevation-12\":\"AlertsScreen_elevation-12__1IZPp\",\"elevation-13\":\"AlertsScreen_elevation-13__g-G7A\",\"elevation-14\":\"AlertsScreen_elevation-14__2fjW1\",\"elevation-15\":\"AlertsScreen_elevation-15__1Y3ct\",\"elevation-16\":\"AlertsScreen_elevation-16__29F0o\",\"elevation-17\":\"AlertsScreen_elevation-17__28REE\",\"elevation-18\":\"AlertsScreen_elevation-18__2Yq5I\",\"elevation-19\":\"AlertsScreen_elevation-19__3gV9n\",\"elevation-20\":\"AlertsScreen_elevation-20__2bxs1\",\"elevation-21\":\"AlertsScreen_elevation-21__yyMGy\",\"elevation-22\":\"AlertsScreen_elevation-22__1T77N\",\"elevation-23\":\"AlertsScreen_elevation-23__3-dJv\",\"elevation-24\":\"AlertsScreen_elevation-24__14bgD\",\"box\":\"AlertsScreen_box__2dw0f\",\"filtersPopoverContainer\":\"AlertsScreen_filtersPopoverContainer__31R-2\",\"counterList\":\"AlertsScreen_counterList__323d9\",\"counter\":\"AlertsScreen_counter__duTWT\",\"counterNumber\":\"AlertsScreen_counterNumber__UWBm7\",\"rowCounters\":\"AlertsScreen_rowCounters__2NfiA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MaintenancesScreen_elevation-1__Y4iWQ\",\"elevation-2\":\"MaintenancesScreen_elevation-2__3qI_b\",\"elevation-3\":\"MaintenancesScreen_elevation-3__2xb_n\",\"elevation-4\":\"MaintenancesScreen_elevation-4__UzeEM\",\"elevation-5\":\"MaintenancesScreen_elevation-5__rU5Cm\",\"elevation-6\":\"MaintenancesScreen_elevation-6__3jnuX\",\"elevation-7\":\"MaintenancesScreen_elevation-7__1noiq\",\"elevation-8\":\"MaintenancesScreen_elevation-8__2dGYZ\",\"elevation-9\":\"MaintenancesScreen_elevation-9__TPglQ\",\"elevation-10\":\"MaintenancesScreen_elevation-10__p8arU\",\"elevation-11\":\"MaintenancesScreen_elevation-11__mWpom\",\"elevation-12\":\"MaintenancesScreen_elevation-12__nDcF9\",\"elevation-13\":\"MaintenancesScreen_elevation-13__30N2-\",\"elevation-14\":\"MaintenancesScreen_elevation-14__HGSIB\",\"elevation-15\":\"MaintenancesScreen_elevation-15__R55H5\",\"elevation-16\":\"MaintenancesScreen_elevation-16__3UcqE\",\"elevation-17\":\"MaintenancesScreen_elevation-17__3shv8\",\"elevation-18\":\"MaintenancesScreen_elevation-18__2omlG\",\"elevation-19\":\"MaintenancesScreen_elevation-19__tT579\",\"elevation-20\":\"MaintenancesScreen_elevation-20__Ura7j\",\"elevation-21\":\"MaintenancesScreen_elevation-21__2Yd5F\",\"elevation-22\":\"MaintenancesScreen_elevation-22__34rGY\",\"elevation-23\":\"MaintenancesScreen_elevation-23__2mK4q\",\"elevation-24\":\"MaintenancesScreen_elevation-24__LoZzt\",\"box\":\"MaintenancesScreen_box__2-6fz\",\"noPadding\":\"MaintenancesScreen_noPadding__3r3Gh\",\"filtersPopoverContainer\":\"MaintenancesScreen_filtersPopoverContainer__12PAk\",\"counterList\":\"MaintenancesScreen_counterList__2QJQ6\",\"counterNumber\":\"MaintenancesScreen_counterNumber__1kE2G\",\"rowCounters\":\"MaintenancesScreen_rowCounters__DfBFo\",\"boxCounterContainer\":\"MaintenancesScreen_boxCounterContainer__2xMI6\",\"boxCounterContent\":\"MaintenancesScreen_boxCounterContent__2imUd\",\"img\":\"MaintenancesScreen_img__4fB3_\",\"labelCounterContainer\":\"MaintenancesScreen_labelCounterContainer__3b7VR\",\"spanLabel\":\"MaintenancesScreen_spanLabel__24OCS\",\"spanCounter\":\"MaintenancesScreen_spanCounter__2Q2TZ\",\"spanSuffixCustomize\":\"MaintenancesScreen_spanSuffixCustomize__QDBAP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"HotSpotModal_elevation-1__2ERVc\",\"elevation-2\":\"HotSpotModal_elevation-2__146gO\",\"elevation-3\":\"HotSpotModal_elevation-3__1fNFx\",\"elevation-4\":\"HotSpotModal_elevation-4__15f3X\",\"elevation-5\":\"HotSpotModal_elevation-5__1In_l\",\"elevation-6\":\"HotSpotModal_elevation-6__OW3WX\",\"elevation-7\":\"HotSpotModal_elevation-7__UXNoa\",\"elevation-8\":\"HotSpotModal_elevation-8__IJcgt\",\"elevation-9\":\"HotSpotModal_elevation-9__1peDr\",\"elevation-10\":\"HotSpotModal_elevation-10__3Cj5S\",\"elevation-11\":\"HotSpotModal_elevation-11__2e4rP\",\"elevation-12\":\"HotSpotModal_elevation-12__rJscy\",\"elevation-13\":\"HotSpotModal_elevation-13__3kROE\",\"elevation-14\":\"HotSpotModal_elevation-14__nmT8U\",\"elevation-15\":\"HotSpotModal_elevation-15__3UMw_\",\"elevation-16\":\"HotSpotModal_elevation-16__1ZhIr\",\"elevation-17\":\"HotSpotModal_elevation-17__18I4J\",\"elevation-18\":\"HotSpotModal_elevation-18__34duO\",\"elevation-19\":\"HotSpotModal_elevation-19__2Zh82\",\"elevation-20\":\"HotSpotModal_elevation-20__3YK8X\",\"elevation-21\":\"HotSpotModal_elevation-21__3Wpex\",\"elevation-22\":\"HotSpotModal_elevation-22__2QR34\",\"elevation-23\":\"HotSpotModal_elevation-23__2krdo\",\"elevation-24\":\"HotSpotModal_elevation-24__24LgF\",\"titleContainer\":\"HotSpotModal_titleContainer__28kiU\",\"textTitle\":\"HotSpotModal_textTitle__2_k59\",\"buttons_container\":\"HotSpotModal_buttons_container__3KnFV\",\"bold\":\"HotSpotModal_bold__1LABB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ListingTable_elevation-1__3dwNy\",\"elevation-2\":\"ListingTable_elevation-2__3LXtk\",\"elevation-3\":\"ListingTable_elevation-3__1IBfh\",\"elevation-4\":\"ListingTable_elevation-4__2SNJ4\",\"elevation-5\":\"ListingTable_elevation-5__1FQGZ\",\"elevation-6\":\"ListingTable_elevation-6__iO9zi\",\"elevation-7\":\"ListingTable_elevation-7__77jLu\",\"elevation-8\":\"ListingTable_elevation-8__2rmR3\",\"elevation-9\":\"ListingTable_elevation-9__2nFSC\",\"elevation-10\":\"ListingTable_elevation-10__1OQ3z\",\"elevation-11\":\"ListingTable_elevation-11__3mMLA\",\"elevation-12\":\"ListingTable_elevation-12__2tXBE\",\"elevation-13\":\"ListingTable_elevation-13__vqMJD\",\"elevation-14\":\"ListingTable_elevation-14__3w-UD\",\"elevation-15\":\"ListingTable_elevation-15__2fzdd\",\"elevation-16\":\"ListingTable_elevation-16___Q0sZ\",\"elevation-17\":\"ListingTable_elevation-17__1GbXg\",\"elevation-18\":\"ListingTable_elevation-18__9YjxS\",\"elevation-19\":\"ListingTable_elevation-19__25FXK\",\"elevation-20\":\"ListingTable_elevation-20__2L7tN\",\"elevation-21\":\"ListingTable_elevation-21__3PH2x\",\"elevation-22\":\"ListingTable_elevation-22__2EP24\",\"elevation-23\":\"ListingTable_elevation-23__3NDy2\",\"elevation-24\":\"ListingTable_elevation-24__1moM8\",\"table\":\"ListingTable_table__fNfn3\",\"columnHeader\":\"ListingTable_columnHeader__1eXCH\",\"columnHeaderOnlyImage\":\"ListingTable_columnHeaderOnlyImage__1KmFy\",\"bodyColumn\":\"ListingTable_bodyColumn__NLHAq\",\"bodyColumnOnlyImage\":\"ListingTable_bodyColumnOnlyImage__oyx9n\",\"bodySubColumn\":\"ListingTable_bodySubColumn__2UoSh\",\"rowHover\":\"ListingTable_rowHover__1DTzi\",\"selected\":\"ListingTable_selected__3jOzl\",\"striped\":\"ListingTable_striped__3UUNp\",\"noItemsText\":\"ListingTable_noItemsText__1iAAb\",\"sm\":\"ListingTable_sm__14F7b\",\"md\":\"ListingTable_md__iHwEr\",\"lg\":\"ListingTable_lg__gLYQ9\",\"xl\":\"ListingTable_xl__19QP0\",\"xxl\":\"ListingTable_xxl__1fHcc\",\"mobile\":\"ListingTable_mobile__2iNrV\",\"headerInfo\":\"ListingTable_headerInfo__DVZKd\",\"headerInfoImage\":\"ListingTable_headerInfoImage__oui2o\",\"headerInfoRight\":\"ListingTable_headerInfoRight__2Z0Jj\",\"clicakble\":\"ListingTable_clicakble__1To8y\",\"loadMoreRow\":\"ListingTable_loadMoreRow__1wePq\",\"subRowWithoutResults\":\"ListingTable_subRowWithoutResults__p4MM9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"IconWithText_elevation-1__o31Q9\",\"elevation-2\":\"IconWithText_elevation-2__3WDw1\",\"elevation-3\":\"IconWithText_elevation-3__1F-9H\",\"elevation-4\":\"IconWithText_elevation-4__2uJSP\",\"elevation-5\":\"IconWithText_elevation-5__1DeNi\",\"elevation-6\":\"IconWithText_elevation-6__1J5s5\",\"elevation-7\":\"IconWithText_elevation-7__tSytR\",\"elevation-8\":\"IconWithText_elevation-8__3ww3m\",\"elevation-9\":\"IconWithText_elevation-9__3-KVx\",\"elevation-10\":\"IconWithText_elevation-10__2QoKn\",\"elevation-11\":\"IconWithText_elevation-11__bHT5p\",\"elevation-12\":\"IconWithText_elevation-12__2etPk\",\"elevation-13\":\"IconWithText_elevation-13__1YoSl\",\"elevation-14\":\"IconWithText_elevation-14__CfSBg\",\"elevation-15\":\"IconWithText_elevation-15__pwe74\",\"elevation-16\":\"IconWithText_elevation-16__MhF0D\",\"elevation-17\":\"IconWithText_elevation-17__dRUYz\",\"elevation-18\":\"IconWithText_elevation-18__EVnjK\",\"elevation-19\":\"IconWithText_elevation-19__1yAFv\",\"elevation-20\":\"IconWithText_elevation-20__28A1v\",\"elevation-21\":\"IconWithText_elevation-21__1SlOS\",\"elevation-22\":\"IconWithText_elevation-22__1Q1E3\",\"elevation-23\":\"IconWithText_elevation-23__2CZEX\",\"elevation-24\":\"IconWithText_elevation-24__2AbZl\",\"container\":\"IconWithText_container__1PQl9\",\"icon\":\"IconWithText_icon__2XTLy\",\"iconSmall\":\"IconWithText_iconSmall__DGgag\",\"iconLarge\":\"IconWithText_iconLarge__3ZA_k\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DateTimePickerRange_elevation-1__2QH-9\",\"elevation-2\":\"DateTimePickerRange_elevation-2__1Kgfx\",\"elevation-3\":\"DateTimePickerRange_elevation-3__2wrt5\",\"elevation-4\":\"DateTimePickerRange_elevation-4__--srd\",\"elevation-5\":\"DateTimePickerRange_elevation-5__ECOV2\",\"elevation-6\":\"DateTimePickerRange_elevation-6__29O8u\",\"elevation-7\":\"DateTimePickerRange_elevation-7__3Y9sq\",\"elevation-8\":\"DateTimePickerRange_elevation-8__6-ZRm\",\"elevation-9\":\"DateTimePickerRange_elevation-9__xJLYh\",\"elevation-10\":\"DateTimePickerRange_elevation-10__QLKqG\",\"elevation-11\":\"DateTimePickerRange_elevation-11__2UHOG\",\"elevation-12\":\"DateTimePickerRange_elevation-12__3VRyJ\",\"elevation-13\":\"DateTimePickerRange_elevation-13__2wIRE\",\"elevation-14\":\"DateTimePickerRange_elevation-14__tmqJf\",\"elevation-15\":\"DateTimePickerRange_elevation-15__3HMLi\",\"elevation-16\":\"DateTimePickerRange_elevation-16__1Qn81\",\"elevation-17\":\"DateTimePickerRange_elevation-17__3IBPo\",\"elevation-18\":\"DateTimePickerRange_elevation-18__3TWeC\",\"elevation-19\":\"DateTimePickerRange_elevation-19__3iIt2\",\"elevation-20\":\"DateTimePickerRange_elevation-20__lr1rh\",\"elevation-21\":\"DateTimePickerRange_elevation-21__2JZvt\",\"elevation-22\":\"DateTimePickerRange_elevation-22__2C2V2\",\"elevation-23\":\"DateTimePickerRange_elevation-23__1-Onm\",\"elevation-24\":\"DateTimePickerRange_elevation-24__2T2Qy\",\"inputGroup\":\"DateTimePickerRange_inputGroup__2qUoN\",\"inputGroupAppend\":\"DateTimePickerRange_inputGroupAppend__3vHvQ\",\"inputGroupText\":\"DateTimePickerRange_inputGroupText__3qWgy\",\"fullWidth\":\"DateTimePickerRange_fullWidth__2bXk1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"TimeLine_elevation-1__3h8jS\",\"elevation-2\":\"TimeLine_elevation-2__3_VWg\",\"elevation-3\":\"TimeLine_elevation-3__B5w-f\",\"elevation-4\":\"TimeLine_elevation-4__27dRl\",\"elevation-5\":\"TimeLine_elevation-5__1R8nJ\",\"elevation-6\":\"TimeLine_elevation-6__2_JR4\",\"elevation-7\":\"TimeLine_elevation-7__3jxnx\",\"elevation-8\":\"TimeLine_elevation-8__3WVFD\",\"elevation-9\":\"TimeLine_elevation-9__1sY1q\",\"elevation-10\":\"TimeLine_elevation-10__1TiPJ\",\"elevation-11\":\"TimeLine_elevation-11__3coZW\",\"elevation-12\":\"TimeLine_elevation-12__2iLjO\",\"elevation-13\":\"TimeLine_elevation-13__1nPmI\",\"elevation-14\":\"TimeLine_elevation-14__1tmi2\",\"elevation-15\":\"TimeLine_elevation-15__1w5wJ\",\"elevation-16\":\"TimeLine_elevation-16__3J0Ny\",\"elevation-17\":\"TimeLine_elevation-17__2gOrp\",\"elevation-18\":\"TimeLine_elevation-18__3V1nD\",\"elevation-19\":\"TimeLine_elevation-19__1Si5o\",\"elevation-20\":\"TimeLine_elevation-20__inOJc\",\"elevation-21\":\"TimeLine_elevation-21__1v0kV\",\"elevation-22\":\"TimeLine_elevation-22__FFBAN\",\"elevation-23\":\"TimeLine_elevation-23__2z6pN\",\"elevation-24\":\"TimeLine_elevation-24__2-prT\",\"title\":\"TimeLine_title__1J29E\",\"infoSmall\":\"TimeLine_infoSmall__2TIVo\",\"info\":\"TimeLine_info__2HjWX\",\"inlineInfo\":\"TimeLine_inlineInfo__3F5SC\",\"icon\":\"TimeLine_icon__1IPBH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"RequestVerificationScreen_elevation-1__2MVEX\",\"elevation-2\":\"RequestVerificationScreen_elevation-2__1pyaz\",\"elevation-3\":\"RequestVerificationScreen_elevation-3__SwX-Z\",\"elevation-4\":\"RequestVerificationScreen_elevation-4__1Hq7Y\",\"elevation-5\":\"RequestVerificationScreen_elevation-5__1nwZ-\",\"elevation-6\":\"RequestVerificationScreen_elevation-6__1XiAe\",\"elevation-7\":\"RequestVerificationScreen_elevation-7__3U_9e\",\"elevation-8\":\"RequestVerificationScreen_elevation-8__2rUC8\",\"elevation-9\":\"RequestVerificationScreen_elevation-9__3Krd5\",\"elevation-10\":\"RequestVerificationScreen_elevation-10__2iQkB\",\"elevation-11\":\"RequestVerificationScreen_elevation-11__FMSaD\",\"elevation-12\":\"RequestVerificationScreen_elevation-12__16pCV\",\"elevation-13\":\"RequestVerificationScreen_elevation-13__2SzBS\",\"elevation-14\":\"RequestVerificationScreen_elevation-14__b4KZr\",\"elevation-15\":\"RequestVerificationScreen_elevation-15__3l8TO\",\"elevation-16\":\"RequestVerificationScreen_elevation-16__36mnb\",\"elevation-17\":\"RequestVerificationScreen_elevation-17__21fxr\",\"elevation-18\":\"RequestVerificationScreen_elevation-18__1yx0W\",\"elevation-19\":\"RequestVerificationScreen_elevation-19__2LPAV\",\"elevation-20\":\"RequestVerificationScreen_elevation-20__2AXbK\",\"elevation-21\":\"RequestVerificationScreen_elevation-21__8S2zc\",\"elevation-22\":\"RequestVerificationScreen_elevation-22__2uF5x\",\"elevation-23\":\"RequestVerificationScreen_elevation-23__3hQVX\",\"elevation-24\":\"RequestVerificationScreen_elevation-24__1KpIF\",\"bold\":\"RequestVerificationScreen_bold__2HFnq\",\"formContent\":\"RequestVerificationScreen_formContent__20EJQ\",\"buttonsFooter\":\"RequestVerificationScreen_buttonsFooter__nSgIe\",\"dateRangeCustom\":\"RequestVerificationScreen_dateRangeCustom__hE5PE\",\"messageRow\":\"RequestVerificationScreen_messageRow__1sCe8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ModalImageEditor_elevation-1__1UUS1\",\"elevation-2\":\"ModalImageEditor_elevation-2__2IlMW\",\"elevation-3\":\"ModalImageEditor_elevation-3__y95f0\",\"elevation-4\":\"ModalImageEditor_elevation-4__2X1HF\",\"elevation-5\":\"ModalImageEditor_elevation-5__3B1Fq\",\"elevation-6\":\"ModalImageEditor_elevation-6__1UHpm\",\"elevation-7\":\"ModalImageEditor_elevation-7__1TWPg\",\"elevation-8\":\"ModalImageEditor_elevation-8__2-QOn\",\"elevation-9\":\"ModalImageEditor_elevation-9__2o2IE\",\"elevation-10\":\"ModalImageEditor_elevation-10__3JqAJ\",\"elevation-11\":\"ModalImageEditor_elevation-11__1nsNG\",\"elevation-12\":\"ModalImageEditor_elevation-12__2Pwk-\",\"elevation-13\":\"ModalImageEditor_elevation-13__3IBJu\",\"elevation-14\":\"ModalImageEditor_elevation-14__1SLR8\",\"elevation-15\":\"ModalImageEditor_elevation-15__1N2HG\",\"elevation-16\":\"ModalImageEditor_elevation-16__ysJ4D\",\"elevation-17\":\"ModalImageEditor_elevation-17__1uAhq\",\"elevation-18\":\"ModalImageEditor_elevation-18__2pRjG\",\"elevation-19\":\"ModalImageEditor_elevation-19__3VOUu\",\"elevation-20\":\"ModalImageEditor_elevation-20__3Cz9q\",\"elevation-21\":\"ModalImageEditor_elevation-21__2G4sy\",\"elevation-22\":\"ModalImageEditor_elevation-22__1GaB_\",\"elevation-23\":\"ModalImageEditor_elevation-23__3zAs0\",\"elevation-24\":\"ModalImageEditor_elevation-24__3PIeH\",\"editorContent\":\"ModalImageEditor_editorContent__SXOpo\",\"canvasContainer\":\"ModalImageEditor_canvasContainer__H-pcm\",\"buttonsContainer\":\"ModalImageEditor_buttonsContainer__2t9ql\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ChargeScreen_elevation-1__3SZQ1\",\"elevation-2\":\"ChargeScreen_elevation-2__5Jmgw\",\"elevation-3\":\"ChargeScreen_elevation-3__3IIQD\",\"elevation-4\":\"ChargeScreen_elevation-4__3lVYN\",\"elevation-5\":\"ChargeScreen_elevation-5__3Z4B1\",\"elevation-6\":\"ChargeScreen_elevation-6__1n-gA\",\"elevation-7\":\"ChargeScreen_elevation-7__azTct\",\"elevation-8\":\"ChargeScreen_elevation-8__2c_4F\",\"elevation-9\":\"ChargeScreen_elevation-9__2kcZJ\",\"elevation-10\":\"ChargeScreen_elevation-10__1qIgV\",\"elevation-11\":\"ChargeScreen_elevation-11__QOaeM\",\"elevation-12\":\"ChargeScreen_elevation-12__3hENO\",\"elevation-13\":\"ChargeScreen_elevation-13__2uzIl\",\"elevation-14\":\"ChargeScreen_elevation-14__2AGpl\",\"elevation-15\":\"ChargeScreen_elevation-15__OyabO\",\"elevation-16\":\"ChargeScreen_elevation-16__lSvLW\",\"elevation-17\":\"ChargeScreen_elevation-17__1eSCA\",\"elevation-18\":\"ChargeScreen_elevation-18__1mUEA\",\"elevation-19\":\"ChargeScreen_elevation-19__tzzoj\",\"elevation-20\":\"ChargeScreen_elevation-20__RnMz_\",\"elevation-21\":\"ChargeScreen_elevation-21__3Y-7z\",\"elevation-22\":\"ChargeScreen_elevation-22__2cCsm\",\"elevation-23\":\"ChargeScreen_elevation-23__3dnMT\",\"elevation-24\":\"ChargeScreen_elevation-24__225nm\",\"box\":\"ChargeScreen_box__2I4L_\",\"header\":\"ChargeScreen_header__1KyaO\",\"icon\":\"ChargeScreen_icon__3SB3M\",\"content\":\"ChargeScreen_content__yGUll\",\"buttonsContainer\":\"ChargeScreen_buttonsContainer__1KWda\",\"button\":\"ChargeScreen_button__1afcG\",\"label\":\"ChargeScreen_label__3VL40\",\"checkboxArea\":\"ChargeScreen_checkboxArea__3yZWq\",\"addIcon\":\"ChargeScreen_addIcon__17UqN\",\"fileArea\":\"ChargeScreen_fileArea__2iXkK\",\"groupRefundTreated\":\"ChargeScreen_groupRefundTreated__ITOUc\",\"groupSpinner\":\"ChargeScreen_groupSpinner__261BE\",\"groupInputRefundTreated\":\"ChargeScreen_groupInputRefundTreated__1_V94\",\"spinner\":\"ChargeScreen_spinner__38V-B\",\"placeholder\":\"ChargeScreen_placeholder__2jSu8\",\"labelSpinner\":\"ChargeScreen_labelSpinner__1ZB52\",\"selected\":\"ChargeScreen_selected__2YiLS\",\"notSelected\":\"ChargeScreen_notSelected__3duZG\",\"spinnerDetails\":\"ChargeScreen_spinnerDetails__f41oA\",\"colRightContent\":\"ChargeScreen_colRightContent__1yhHr\",\"subtitle\":\"ChargeScreen_subtitle__1Ab7E\",\"scrollable\":\"ChargeScreen_scrollable__3dSe7\",\"situation\":\"ChargeScreen_situation__1iAH3\",\"labelContainer\":\"ChargeScreen_labelContainer__AUpIU\",\"labelContent\":\"ChargeScreen_labelContent__Q6wJ5\",\"situationDetails\":\"ChargeScreen_situationDetails__1MMPT\",\"fullHeight\":\"ChargeScreen_fullHeight__21AI_\",\"labelHistory\":\"ChargeScreen_labelHistory__3TCBp\",\"messageRefundApproved\":\"ChargeScreen_messageRefundApproved__2ihM9\",\"labelRefundApproved\":\"ChargeScreen_labelRefundApproved__CHOID\",\"messageDeleted\":\"ChargeScreen_messageDeleted__1pgyq\",\"divider\":\"ChargeScreen_divider__-Ce0y\",\"filesHeader\":\"ChargeScreen_filesHeader__1XojC\",\"filesContent\":\"ChargeScreen_filesContent__JfyZs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ColorPicker_elevation-1__1a-O7\",\"elevation-2\":\"ColorPicker_elevation-2__EbUfQ\",\"elevation-3\":\"ColorPicker_elevation-3__2B2yS\",\"elevation-4\":\"ColorPicker_elevation-4__Exc3n\",\"elevation-5\":\"ColorPicker_elevation-5__A5qOO\",\"elevation-6\":\"ColorPicker_elevation-6__1vpBF\",\"elevation-7\":\"ColorPicker_elevation-7__wPNfE\",\"elevation-8\":\"ColorPicker_elevation-8__1anK-\",\"elevation-9\":\"ColorPicker_elevation-9__1RTYv\",\"elevation-10\":\"ColorPicker_elevation-10__K3NXp\",\"elevation-11\":\"ColorPicker_elevation-11__2ECF4\",\"elevation-12\":\"ColorPicker_elevation-12__1dU2I\",\"elevation-13\":\"ColorPicker_elevation-13__1R6eE\",\"elevation-14\":\"ColorPicker_elevation-14__2oJgs\",\"elevation-15\":\"ColorPicker_elevation-15__PVWKH\",\"elevation-16\":\"ColorPicker_elevation-16__2iOTc\",\"elevation-17\":\"ColorPicker_elevation-17__3rFIK\",\"elevation-18\":\"ColorPicker_elevation-18__2RyH3\",\"elevation-19\":\"ColorPicker_elevation-19__37ImO\",\"elevation-20\":\"ColorPicker_elevation-20__sD6is\",\"elevation-21\":\"ColorPicker_elevation-21__2frce\",\"elevation-22\":\"ColorPicker_elevation-22__Jj4CO\",\"elevation-23\":\"ColorPicker_elevation-23__1YqKg\",\"elevation-24\":\"ColorPicker_elevation-24__n5iDA\",\"inputContainer\":\"ColorPicker_inputContainer__2tkfk\",\"colorInput\":\"ColorPicker_colorInput__1oT_H\",\"placeholder\":\"ColorPicker_placeholder__3y2G-\",\"disabled\":\"ColorPicker_disabled__3bkWc\",\"pallete\":\"ColorPicker_pallete__1CG_V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DriversFilters_elevation-1__HvOH3\",\"elevation-2\":\"DriversFilters_elevation-2__1Y4M4\",\"elevation-3\":\"DriversFilters_elevation-3__3Nqsm\",\"elevation-4\":\"DriversFilters_elevation-4__2fit1\",\"elevation-5\":\"DriversFilters_elevation-5__1VWPb\",\"elevation-6\":\"DriversFilters_elevation-6__ON2Ax\",\"elevation-7\":\"DriversFilters_elevation-7__2_QFD\",\"elevation-8\":\"DriversFilters_elevation-8__2IsYS\",\"elevation-9\":\"DriversFilters_elevation-9__1JG6s\",\"elevation-10\":\"DriversFilters_elevation-10__1cNPl\",\"elevation-11\":\"DriversFilters_elevation-11__35nA0\",\"elevation-12\":\"DriversFilters_elevation-12__28A6F\",\"elevation-13\":\"DriversFilters_elevation-13__1XRFb\",\"elevation-14\":\"DriversFilters_elevation-14__3wDbr\",\"elevation-15\":\"DriversFilters_elevation-15__1fc6M\",\"elevation-16\":\"DriversFilters_elevation-16__krtVf\",\"elevation-17\":\"DriversFilters_elevation-17__2i3mX\",\"elevation-18\":\"DriversFilters_elevation-18__iQutF\",\"elevation-19\":\"DriversFilters_elevation-19__fQfMv\",\"elevation-20\":\"DriversFilters_elevation-20__3y8s2\",\"elevation-21\":\"DriversFilters_elevation-21__1diqw\",\"elevation-22\":\"DriversFilters_elevation-22__3JpKD\",\"elevation-23\":\"DriversFilters_elevation-23__1OblQ\",\"elevation-24\":\"DriversFilters_elevation-24__Z7kjk\",\"bold\":\"DriversFilters_bold__2yhS2\",\"formContent\":\"DriversFilters_formContent__SPk9R\",\"buttonsFooter\":\"DriversFilters_buttonsFooter__2-55k\",\"dateRangeCustom\":\"DriversFilters_dateRangeCustom__pPi0C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImportChargesScreen_elevation-1__-xIuj\",\"elevation-2\":\"ImportChargesScreen_elevation-2__10gT7\",\"elevation-3\":\"ImportChargesScreen_elevation-3__1iETm\",\"elevation-4\":\"ImportChargesScreen_elevation-4__2eniu\",\"elevation-5\":\"ImportChargesScreen_elevation-5__2YJPt\",\"elevation-6\":\"ImportChargesScreen_elevation-6__P5T-u\",\"elevation-7\":\"ImportChargesScreen_elevation-7__RbeOX\",\"elevation-8\":\"ImportChargesScreen_elevation-8__GJj7B\",\"elevation-9\":\"ImportChargesScreen_elevation-9__S-tAw\",\"elevation-10\":\"ImportChargesScreen_elevation-10__2UDcg\",\"elevation-11\":\"ImportChargesScreen_elevation-11__1oTSq\",\"elevation-12\":\"ImportChargesScreen_elevation-12__2Mx-6\",\"elevation-13\":\"ImportChargesScreen_elevation-13__2pa6I\",\"elevation-14\":\"ImportChargesScreen_elevation-14__1VtlJ\",\"elevation-15\":\"ImportChargesScreen_elevation-15__3ZeEl\",\"elevation-16\":\"ImportChargesScreen_elevation-16__3-6P-\",\"elevation-17\":\"ImportChargesScreen_elevation-17__2H27F\",\"elevation-18\":\"ImportChargesScreen_elevation-18__Keskp\",\"elevation-19\":\"ImportChargesScreen_elevation-19__10f3p\",\"elevation-20\":\"ImportChargesScreen_elevation-20__yGcrx\",\"elevation-21\":\"ImportChargesScreen_elevation-21__llKin\",\"elevation-22\":\"ImportChargesScreen_elevation-22__174Pi\",\"elevation-23\":\"ImportChargesScreen_elevation-23__26jQM\",\"elevation-24\":\"ImportChargesScreen_elevation-24__2vQW_\",\"box\":\"ImportChargesScreen_box__xa10j\",\"header\":\"ImportChargesScreen_header__172Ej\",\"icon\":\"ImportChargesScreen_icon__2cFR6\",\"tabHeader\":\"ImportChargesScreen_tabHeader__3tQVK\",\"divSVG\":\"ImportChargesScreen_divSVG__5tp2p\",\"rowFlex\":\"ImportChargesScreen_rowFlex__2Tmp3\",\"filtersPopoverContainer\":\"ImportChargesScreen_filtersPopoverContainer__3L22z\",\"panelSearch\":\"ImportChargesScreen_panelSearch__1_VA3\",\"searchValues\":\"ImportChargesScreen_searchValues__YME-o\",\"moneyColumn\":\"ImportChargesScreen_moneyColumn__245LN\",\"dateFrais\":\"ImportChargesScreen_dateFrais__1SGM6\",\"cellContainer\":\"ImportChargesScreen_cellContainer__3-zHu\",\"firstRow\":\"ImportChargesScreen_firstRow__wqOPw\",\"secondRow\":\"ImportChargesScreen_secondRow__36Wne\",\"bold\":\"ImportChargesScreen_bold__UAu8V\",\"imageDescCell\":\"ImportChargesScreen_imageDescCell__1DXzS\",\"descCell\":\"ImportChargesScreen_descCell__11OX-\",\"contentImage\":\"ImportChargesScreen_contentImage__lo0dk\",\"img\":\"ImportChargesScreen_img__DnVN_\",\"columnPlate\":\"ImportChargesScreen_columnPlate__3-VE2\",\"columnBrand\":\"ImportChargesScreen_columnBrand__314g9\",\"columnSpec\":\"ImportChargesScreen_columnSpec__1zPla\",\"rowCounters\":\"ImportChargesScreen_rowCounters__2ZTvn\",\"filters\":\"ImportChargesScreen_filters__1QYBQ\",\"filtersLabel\":\"ImportChargesScreen_filtersLabel__1otVB\",\"searchButton\":\"ImportChargesScreen_searchButton__-hFkz\",\"divider\":\"ImportChargesScreen_divider__1umKq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImportChargeFilters_elevation-1__2kAan\",\"elevation-2\":\"ImportChargeFilters_elevation-2__3isPI\",\"elevation-3\":\"ImportChargeFilters_elevation-3__1nnkp\",\"elevation-4\":\"ImportChargeFilters_elevation-4__2dpMp\",\"elevation-5\":\"ImportChargeFilters_elevation-5__1A4DP\",\"elevation-6\":\"ImportChargeFilters_elevation-6__3kJIs\",\"elevation-7\":\"ImportChargeFilters_elevation-7__2gB-J\",\"elevation-8\":\"ImportChargeFilters_elevation-8__2aYuj\",\"elevation-9\":\"ImportChargeFilters_elevation-9__1RYTh\",\"elevation-10\":\"ImportChargeFilters_elevation-10__zsUeY\",\"elevation-11\":\"ImportChargeFilters_elevation-11__1V5o6\",\"elevation-12\":\"ImportChargeFilters_elevation-12__1Yre_\",\"elevation-13\":\"ImportChargeFilters_elevation-13__16RJT\",\"elevation-14\":\"ImportChargeFilters_elevation-14__OAGb8\",\"elevation-15\":\"ImportChargeFilters_elevation-15__cpqzm\",\"elevation-16\":\"ImportChargeFilters_elevation-16__3J0DY\",\"elevation-17\":\"ImportChargeFilters_elevation-17__2EcbL\",\"elevation-18\":\"ImportChargeFilters_elevation-18__YOEk4\",\"elevation-19\":\"ImportChargeFilters_elevation-19__2P77s\",\"elevation-20\":\"ImportChargeFilters_elevation-20__2F2Au\",\"elevation-21\":\"ImportChargeFilters_elevation-21__1ZPNu\",\"elevation-22\":\"ImportChargeFilters_elevation-22__JDUPD\",\"elevation-23\":\"ImportChargeFilters_elevation-23__3tLAq\",\"elevation-24\":\"ImportChargeFilters_elevation-24__2nEs3\",\"filtersLabel\":\"ImportChargeFilters_filtersLabel__ETjOf\",\"searchButton\":\"ImportChargeFilters_searchButton__fPPaz\",\"bold\":\"ImportChargeFilters_bold__2emPb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarGpsTab_elevation-1__1aXOA\",\"elevation-2\":\"CarGpsTab_elevation-2__1CmsX\",\"elevation-3\":\"CarGpsTab_elevation-3__2ZRj3\",\"elevation-4\":\"CarGpsTab_elevation-4__3LioU\",\"elevation-5\":\"CarGpsTab_elevation-5__3nWpm\",\"elevation-6\":\"CarGpsTab_elevation-6__2nMJn\",\"elevation-7\":\"CarGpsTab_elevation-7__3uDtQ\",\"elevation-8\":\"CarGpsTab_elevation-8__1QHLI\",\"elevation-9\":\"CarGpsTab_elevation-9__3960x\",\"elevation-10\":\"CarGpsTab_elevation-10__2m3jl\",\"elevation-11\":\"CarGpsTab_elevation-11__E-Efc\",\"elevation-12\":\"CarGpsTab_elevation-12__sNUNq\",\"elevation-13\":\"CarGpsTab_elevation-13__3y69n\",\"elevation-14\":\"CarGpsTab_elevation-14___OirZ\",\"elevation-15\":\"CarGpsTab_elevation-15__32JpW\",\"elevation-16\":\"CarGpsTab_elevation-16__ISazh\",\"elevation-17\":\"CarGpsTab_elevation-17__3YW2o\",\"elevation-18\":\"CarGpsTab_elevation-18__2ZSqQ\",\"elevation-19\":\"CarGpsTab_elevation-19__20EQK\",\"elevation-20\":\"CarGpsTab_elevation-20__1Lm7P\",\"elevation-21\":\"CarGpsTab_elevation-21__3ymOc\",\"elevation-22\":\"CarGpsTab_elevation-22__3y7nR\",\"elevation-23\":\"CarGpsTab_elevation-23__1_c0l\",\"elevation-24\":\"CarGpsTab_elevation-24__1NKsD\",\"container\":\"CarGpsTab_container__2lwg4\",\"noDataContainer\":\"CarGpsTab_noDataContainer__2VNn6\",\"floatingBox\":\"CarGpsTab_floatingBox__3WYDh\",\"icon\":\"CarGpsTab_icon__36K8S\",\"address\":\"CarGpsTab_address__3-ag6\",\"onFg\":\"CarGpsTab_onFg__5zJuA\",\"errorMessage\":\"CarGpsTab_errorMessage__TQEhT\",\"map\":\"CarGpsTab_map__1HHj3\",\"pr\":\"CarGpsTab_pr__mjrv5\",\"mr\":\"CarGpsTab_mr__2YBe3\",\"p08\":\"CarGpsTab_p08__3rdbA\",\"cardBody\":\"CarGpsTab_cardBody__gxBbA\",\"iconSmall\":\"CarGpsTab_iconSmall__2ZMKN\",\"iconLarge\":\"CarGpsTab_iconLarge__LPksl\",\"inputGroup\":\"CarGpsTab_inputGroup__3x_od\",\"input\":\"CarGpsTab_input__1u8B8\",\"cardFooter\":\"CarGpsTab_cardFooter__1cqHM\",\"card\":\"CarGpsTab_card__1Fr_C\",\"selected\":\"CarGpsTab_selected__3tvZW\",\"emptyContainer\":\"CarGpsTab_emptyContainer__WY-7o\",\"badge\":\"CarGpsTab_badge__ug1Mb\",\"spaceBetween\":\"CarGpsTab_spaceBetween__21Zxc\",\"geoLocation\":\"CarGpsTab_geoLocation__1p7Lf\",\"sourcePin\":\"CarGpsTab_sourcePin__27Ljf\",\"destinationPin\":\"CarGpsTab_destinationPin__1vriK\",\"eco\":\"CarGpsTab_eco__3yH_h\",\"eco_success\":\"CarGpsTab_eco_success__21U08\",\"eco_danger\":\"CarGpsTab_eco_danger__kl-wJ\",\"eco_warning\":\"CarGpsTab_eco_warning__2gunV\",\"currentLocation\":\"CarGpsTab_currentLocation__3p2Vh\",\"hr\":\"CarGpsTab_hr__3J815\",\"labelAddress\":\"CarGpsTab_labelAddress__3x4pj\",\"labelDate\":\"CarGpsTab_labelDate__3rd58\",\"infoFuel\":\"CarGpsTab_infoFuel__147iB\",\"labelFuel\":\"CarGpsTab_labelFuel__L2qQt\",\"iconLine\":\"CarGpsTab_iconLine__1h2Dk\",\"moving\":\"CarGpsTab_moving__nbsG7\",\"pin\":\"CarGpsTab_pin__34HBD\",\"pinIgnitionOn\":\"CarGpsTab_pinIgnitionOn__2NRkL\",\"pinIgnitionOff\":\"CarGpsTab_pinIgnitionOff__2_vP2\",\"table\":\"CarGpsTab_table__265bV\",\"tootip\":\"CarGpsTab_tootip__2u-Es\",\"flexWrap\":\"CarGpsTab_flexWrap__2MrXQ\",\"totalContainer\":\"CarGpsTab_totalContainer__3N_sb\",\"totalText\":\"CarGpsTab_totalText__3isJc\",\"toggleContainer\":\"CarGpsTab_toggleContainer__18I1D\",\"toggleLabel\":\"CarGpsTab_toggleLabel__3RoBW\",\"toggleSwitch\":\"CarGpsTab_toggleSwitch__hbVdE\",\"switch\":\"CarGpsTab_switch__132SN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MaintenanceScreen_elevation-1__LXtaY\",\"elevation-2\":\"MaintenanceScreen_elevation-2__1voIf\",\"elevation-3\":\"MaintenanceScreen_elevation-3__3OgrN\",\"elevation-4\":\"MaintenanceScreen_elevation-4__1Qttc\",\"elevation-5\":\"MaintenanceScreen_elevation-5__3NfLZ\",\"elevation-6\":\"MaintenanceScreen_elevation-6__3rX8R\",\"elevation-7\":\"MaintenanceScreen_elevation-7__3Emx-\",\"elevation-8\":\"MaintenanceScreen_elevation-8__5B5_1\",\"elevation-9\":\"MaintenanceScreen_elevation-9__2e91l\",\"elevation-10\":\"MaintenanceScreen_elevation-10__VuNL4\",\"elevation-11\":\"MaintenanceScreen_elevation-11__259g8\",\"elevation-12\":\"MaintenanceScreen_elevation-12__3mnpE\",\"elevation-13\":\"MaintenanceScreen_elevation-13__tJWu3\",\"elevation-14\":\"MaintenanceScreen_elevation-14__tigJR\",\"elevation-15\":\"MaintenanceScreen_elevation-15__1X6AP\",\"elevation-16\":\"MaintenanceScreen_elevation-16__1foy6\",\"elevation-17\":\"MaintenanceScreen_elevation-17__1N8qY\",\"elevation-18\":\"MaintenanceScreen_elevation-18__2sHxo\",\"elevation-19\":\"MaintenanceScreen_elevation-19__3WBrM\",\"elevation-20\":\"MaintenanceScreen_elevation-20__1-i68\",\"elevation-21\":\"MaintenanceScreen_elevation-21__3uGSR\",\"elevation-22\":\"MaintenanceScreen_elevation-22__nbfgn\",\"elevation-23\":\"MaintenanceScreen_elevation-23__2fqH-\",\"elevation-24\":\"MaintenanceScreen_elevation-24__3rG3q\",\"content\":\"MaintenanceScreen_content__o0R8f\",\"label\":\"MaintenanceScreen_label__18Hfh\",\"labelQuestion\":\"MaintenanceScreen_labelQuestion__1N7MN\",\"errorLabel\":\"MaintenanceScreen_errorLabel__1gNU3\",\"header\":\"MaintenanceScreen_header__2qeJx\",\"icon\":\"MaintenanceScreen_icon__2xbwd\",\"messageDeleted\":\"MaintenanceScreen_messageDeleted__3-ggq\",\"colXXL\":\"MaintenanceScreen_colXXL__1Yl7X\",\"buttonsContainer\":\"MaintenanceScreen_buttonsContainer__3EBmc\",\"button\":\"MaintenanceScreen_button__3eENU\",\"colRightContent\":\"MaintenanceScreen_colRightContent__16czB\",\"subtitle\":\"MaintenanceScreen_subtitle__2wHbZ\",\"fullHeight\":\"MaintenanceScreen_fullHeight__3eeTd\",\"containerSmallButton\":\"MaintenanceScreen_containerSmallButton__3BNkR\",\"iconAdd\":\"MaintenanceScreen_iconAdd__2_33j\",\"rowAlerts\":\"MaintenanceScreen_rowAlerts__26eSg\",\"removeIcon\":\"MaintenanceScreen_removeIcon__2aROx\",\"noInfoText\":\"MaintenanceScreen_noInfoText__34_We\",\"buttonOptions\":\"MaintenanceScreen_buttonOptions__19zka\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesMileageScreen_elevation-1__3vv0Q\",\"elevation-2\":\"VehiclesMileageScreen_elevation-2__2iwBd\",\"elevation-3\":\"VehiclesMileageScreen_elevation-3__28xp6\",\"elevation-4\":\"VehiclesMileageScreen_elevation-4__1Eb2B\",\"elevation-5\":\"VehiclesMileageScreen_elevation-5__3Klc5\",\"elevation-6\":\"VehiclesMileageScreen_elevation-6__YheO_\",\"elevation-7\":\"VehiclesMileageScreen_elevation-7__2gocY\",\"elevation-8\":\"VehiclesMileageScreen_elevation-8__qNUXr\",\"elevation-9\":\"VehiclesMileageScreen_elevation-9__1G9Yc\",\"elevation-10\":\"VehiclesMileageScreen_elevation-10__QNDxu\",\"elevation-11\":\"VehiclesMileageScreen_elevation-11__1LYBQ\",\"elevation-12\":\"VehiclesMileageScreen_elevation-12__2pi3O\",\"elevation-13\":\"VehiclesMileageScreen_elevation-13__1WX97\",\"elevation-14\":\"VehiclesMileageScreen_elevation-14__1gu-M\",\"elevation-15\":\"VehiclesMileageScreen_elevation-15__2MchE\",\"elevation-16\":\"VehiclesMileageScreen_elevation-16__1lECk\",\"elevation-17\":\"VehiclesMileageScreen_elevation-17__2N_ir\",\"elevation-18\":\"VehiclesMileageScreen_elevation-18__3lGQc\",\"elevation-19\":\"VehiclesMileageScreen_elevation-19__YgKmB\",\"elevation-20\":\"VehiclesMileageScreen_elevation-20__3_Mpc\",\"elevation-21\":\"VehiclesMileageScreen_elevation-21__deozy\",\"elevation-22\":\"VehiclesMileageScreen_elevation-22__2_0MM\",\"elevation-23\":\"VehiclesMileageScreen_elevation-23__32dSI\",\"elevation-24\":\"VehiclesMileageScreen_elevation-24__3niEP\",\"columnPlate\":\"VehiclesMileageScreen_columnPlate__18cOL\",\"dropdownContainer\":\"VehiclesMileageScreen_dropdownContainer__1KB6D\",\"columnBrand\":\"VehiclesMileageScreen_columnBrand__1QElE\",\"columnSpec\":\"VehiclesMileageScreen_columnSpec__11vPd\",\"contentImage\":\"VehiclesMileageScreen_contentImage__2yhwu\",\"img\":\"VehiclesMileageScreen_img__1n5Y-\",\"filtersPopoverContainer\":\"VehiclesMileageScreen_filtersPopoverContainer__2IvCx\",\"counterList\":\"VehiclesMileageScreen_counterList__3Rd4-\",\"counter\":\"VehiclesMileageScreen_counter__1Beal\",\"counterNumber\":\"VehiclesMileageScreen_counterNumber__2Jm6h\",\"imageDescCell\":\"VehiclesMileageScreen_imageDescCell__jyRvK\",\"descCell\":\"VehiclesMileageScreen_descCell__2-LDz\",\"rowCounters\":\"VehiclesMileageScreen_rowCounters__3Eb05\",\"cellContainer\":\"VehiclesMileageScreen_cellContainer__Vl1lv\",\"firstRow\":\"VehiclesMileageScreen_firstRow__1_3Jy\",\"secondRow\":\"VehiclesMileageScreen_secondRow__2VPKy\",\"smallCustomization\":\"VehiclesMileageScreen_smallCustomization__eXSU1\",\"smallCustomizationDanger\":\"VehiclesMileageScreen_smallCustomizationDanger__1Wsm-\",\"kilometersContainer\":\"VehiclesMileageScreen_kilometersContainer__94PyW\",\"imgKilometers\":\"VehiclesMileageScreen_imgKilometers__3Hnf-\",\"fontBold\":\"VehiclesMileageScreen_fontBold__yCj6B\",\"progressBar\":\"VehiclesMileageScreen_progressBar__f9hyR\",\"progressBarItem\":\"VehiclesMileageScreen_progressBarItem__3cQYi\",\"progressBarItemAbove\":\"VehiclesMileageScreen_progressBarItemAbove__2JUDK\",\"progressBarItemBelow\":\"VehiclesMileageScreen_progressBarItemBelow__Q5Cse\",\"kmsRealAbove\":\"VehiclesMileageScreen_kmsRealAbove__225hd\",\"kmsRealBelow\":\"VehiclesMileageScreen_kmsRealBelow__36UoM\",\"exportButton\":\"VehiclesMileageScreen_exportButton__1wAPW\",\"toolTipDivFitContent\":\"VehiclesMileageScreen_toolTipDivFitContent__3lJIG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DateTimePicker_elevation-1__2TSkF\",\"elevation-2\":\"DateTimePicker_elevation-2__Y_lly\",\"elevation-3\":\"DateTimePicker_elevation-3__1FqpE\",\"elevation-4\":\"DateTimePicker_elevation-4__E5Jnp\",\"elevation-5\":\"DateTimePicker_elevation-5__2N4v8\",\"elevation-6\":\"DateTimePicker_elevation-6__2zMmV\",\"elevation-7\":\"DateTimePicker_elevation-7__1XIsA\",\"elevation-8\":\"DateTimePicker_elevation-8__3uozU\",\"elevation-9\":\"DateTimePicker_elevation-9__1gWUb\",\"elevation-10\":\"DateTimePicker_elevation-10__2a3cX\",\"elevation-11\":\"DateTimePicker_elevation-11__-RRjY\",\"elevation-12\":\"DateTimePicker_elevation-12__3fyZZ\",\"elevation-13\":\"DateTimePicker_elevation-13__2Wzbf\",\"elevation-14\":\"DateTimePicker_elevation-14__XAjp7\",\"elevation-15\":\"DateTimePicker_elevation-15__2PuSF\",\"elevation-16\":\"DateTimePicker_elevation-16__3-3v7\",\"elevation-17\":\"DateTimePicker_elevation-17__3fSND\",\"elevation-18\":\"DateTimePicker_elevation-18__wvp2k\",\"elevation-19\":\"DateTimePicker_elevation-19__3JUXc\",\"elevation-20\":\"DateTimePicker_elevation-20__2giyT\",\"elevation-21\":\"DateTimePicker_elevation-21__1jrEI\",\"elevation-22\":\"DateTimePicker_elevation-22__VY65v\",\"elevation-23\":\"DateTimePicker_elevation-23__2j5--\",\"elevation-24\":\"DateTimePicker_elevation-24__2XwGA\",\"fullWidth\":\"DateTimePicker_fullWidth__sepvL\",\"rangeContainer\":\"DateTimePicker_rangeContainer__3ltWK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AuthenticatedLayout_elevation-1__1RNY1\",\"elevation-2\":\"AuthenticatedLayout_elevation-2__1-Koh\",\"elevation-3\":\"AuthenticatedLayout_elevation-3__2nalf\",\"elevation-4\":\"AuthenticatedLayout_elevation-4__2U3To\",\"elevation-5\":\"AuthenticatedLayout_elevation-5__3NuM3\",\"elevation-6\":\"AuthenticatedLayout_elevation-6__1cgkv\",\"elevation-7\":\"AuthenticatedLayout_elevation-7__2GDgs\",\"elevation-8\":\"AuthenticatedLayout_elevation-8__3BVzD\",\"elevation-9\":\"AuthenticatedLayout_elevation-9__3RAfd\",\"elevation-10\":\"AuthenticatedLayout_elevation-10__K9Bx7\",\"elevation-11\":\"AuthenticatedLayout_elevation-11__3BVBn\",\"elevation-12\":\"AuthenticatedLayout_elevation-12__2GZfj\",\"elevation-13\":\"AuthenticatedLayout_elevation-13__2IjXq\",\"elevation-14\":\"AuthenticatedLayout_elevation-14__1u2VB\",\"elevation-15\":\"AuthenticatedLayout_elevation-15__3pdpw\",\"elevation-16\":\"AuthenticatedLayout_elevation-16__236qz\",\"elevation-17\":\"AuthenticatedLayout_elevation-17__1mOL5\",\"elevation-18\":\"AuthenticatedLayout_elevation-18__1N6YT\",\"elevation-19\":\"AuthenticatedLayout_elevation-19__3oJi1\",\"elevation-20\":\"AuthenticatedLayout_elevation-20__1qtY1\",\"elevation-21\":\"AuthenticatedLayout_elevation-21__evjcI\",\"elevation-22\":\"AuthenticatedLayout_elevation-22__2R6mT\",\"elevation-23\":\"AuthenticatedLayout_elevation-23__27zQJ\",\"elevation-24\":\"AuthenticatedLayout_elevation-24__1VK0G\",\"container\":\"AuthenticatedLayout_container__h1s-P\",\"sidebarContainer\":\"AuthenticatedLayout_sidebarContainer__36zHw\",\"contentContainer\":\"AuthenticatedLayout_contentContainer__1KuLg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImageEditor_elevation-1__22BFm\",\"elevation-2\":\"ImageEditor_elevation-2__x-chA\",\"elevation-3\":\"ImageEditor_elevation-3__2yhRq\",\"elevation-4\":\"ImageEditor_elevation-4__3F6oX\",\"elevation-5\":\"ImageEditor_elevation-5__3gX9Q\",\"elevation-6\":\"ImageEditor_elevation-6__24b8q\",\"elevation-7\":\"ImageEditor_elevation-7__2qkKY\",\"elevation-8\":\"ImageEditor_elevation-8__qndsJ\",\"elevation-9\":\"ImageEditor_elevation-9__3Rwlt\",\"elevation-10\":\"ImageEditor_elevation-10__3Vnn7\",\"elevation-11\":\"ImageEditor_elevation-11__2dePx\",\"elevation-12\":\"ImageEditor_elevation-12__2V-MC\",\"elevation-13\":\"ImageEditor_elevation-13__16Z1K\",\"elevation-14\":\"ImageEditor_elevation-14__26FoJ\",\"elevation-15\":\"ImageEditor_elevation-15__37vir\",\"elevation-16\":\"ImageEditor_elevation-16__1q6va\",\"elevation-17\":\"ImageEditor_elevation-17__1tjXw\",\"elevation-18\":\"ImageEditor_elevation-18__1S_qJ\",\"elevation-19\":\"ImageEditor_elevation-19__1u-3G\",\"elevation-20\":\"ImageEditor_elevation-20__1d9Ck\",\"elevation-21\":\"ImageEditor_elevation-21__2bI2n\",\"elevation-22\":\"ImageEditor_elevation-22__2UwyZ\",\"elevation-23\":\"ImageEditor_elevation-23__2MctS\",\"elevation-24\":\"ImageEditor_elevation-24__29dCB\",\"imagePreview\":\"ImageEditor_imagePreview__3x2sB\",\"editorContent\":\"ImageEditor_editorContent__2uZk1\",\"editorSave\":\"ImageEditor_editorSave__2VEvq\",\"options\":\"ImageEditor_options__1SwLe\",\"sizeContainer\":\"ImageEditor_sizeContainer__3K3Rl\",\"sizeContentXs\":\"ImageEditor_sizeContentXs__QDUZm\",\"sizeContentM\":\"ImageEditor_sizeContentM__Exqet\",\"sizeContentL\":\"ImageEditor_sizeContentL__1TmQ9\",\"sizeContentXl\":\"ImageEditor_sizeContentXl__2AUGK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ScreenHeader_elevation-1__1N45Z\",\"elevation-2\":\"ScreenHeader_elevation-2__1zxg0\",\"elevation-3\":\"ScreenHeader_elevation-3__-ClU9\",\"elevation-4\":\"ScreenHeader_elevation-4__bZuZQ\",\"elevation-5\":\"ScreenHeader_elevation-5__1HdgS\",\"elevation-6\":\"ScreenHeader_elevation-6__Q9kRe\",\"elevation-7\":\"ScreenHeader_elevation-7__2u34_\",\"elevation-8\":\"ScreenHeader_elevation-8__pt8Iu\",\"elevation-9\":\"ScreenHeader_elevation-9__fwtFN\",\"elevation-10\":\"ScreenHeader_elevation-10__2l_wV\",\"elevation-11\":\"ScreenHeader_elevation-11__SXHnY\",\"elevation-12\":\"ScreenHeader_elevation-12__2NzIE\",\"elevation-13\":\"ScreenHeader_elevation-13__28JgZ\",\"elevation-14\":\"ScreenHeader_elevation-14__2gqo_\",\"elevation-15\":\"ScreenHeader_elevation-15__3UwBK\",\"elevation-16\":\"ScreenHeader_elevation-16__1RS-z\",\"elevation-17\":\"ScreenHeader_elevation-17___LWQx\",\"elevation-18\":\"ScreenHeader_elevation-18__2rw4e\",\"elevation-19\":\"ScreenHeader_elevation-19__1LPrY\",\"elevation-20\":\"ScreenHeader_elevation-20__2XNn5\",\"elevation-21\":\"ScreenHeader_elevation-21__2eG1l\",\"elevation-22\":\"ScreenHeader_elevation-22__3YYZU\",\"elevation-23\":\"ScreenHeader_elevation-23__4Ze2u\",\"elevation-24\":\"ScreenHeader_elevation-24__P7EUk\",\"container\":\"ScreenHeader_container__1W-Jk\",\"title\":\"ScreenHeader_title__wnKSj\",\"buttons\":\"ScreenHeader_buttons__fwylc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NotFoundScreen_elevation-1__3hDZR\",\"elevation-2\":\"NotFoundScreen_elevation-2__2FCK6\",\"elevation-3\":\"NotFoundScreen_elevation-3__15Mxs\",\"elevation-4\":\"NotFoundScreen_elevation-4__3tky1\",\"elevation-5\":\"NotFoundScreen_elevation-5__3VukH\",\"elevation-6\":\"NotFoundScreen_elevation-6__3RhTg\",\"elevation-7\":\"NotFoundScreen_elevation-7__1mI-h\",\"elevation-8\":\"NotFoundScreen_elevation-8__QAu1e\",\"elevation-9\":\"NotFoundScreen_elevation-9__2UlNq\",\"elevation-10\":\"NotFoundScreen_elevation-10__3p9yQ\",\"elevation-11\":\"NotFoundScreen_elevation-11__3wLAJ\",\"elevation-12\":\"NotFoundScreen_elevation-12__39caV\",\"elevation-13\":\"NotFoundScreen_elevation-13__iBvMQ\",\"elevation-14\":\"NotFoundScreen_elevation-14__3uURH\",\"elevation-15\":\"NotFoundScreen_elevation-15__1ZgJT\",\"elevation-16\":\"NotFoundScreen_elevation-16__2cxA0\",\"elevation-17\":\"NotFoundScreen_elevation-17__1ld76\",\"elevation-18\":\"NotFoundScreen_elevation-18__1o48O\",\"elevation-19\":\"NotFoundScreen_elevation-19__5s1TI\",\"elevation-20\":\"NotFoundScreen_elevation-20__34axs\",\"elevation-21\":\"NotFoundScreen_elevation-21__2PX5j\",\"elevation-22\":\"NotFoundScreen_elevation-22__2Xx9p\",\"elevation-23\":\"NotFoundScreen_elevation-23__24qtr\",\"elevation-24\":\"NotFoundScreen_elevation-24__1s0Ps\",\"container\":\"NotFoundScreen_container__2l_pk\",\"sidebarContainer\":\"NotFoundScreen_sidebarContainer__39yFZ\",\"contentContainer\":\"NotFoundScreen_contentContainer__1jVXA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ListContractsScreen_elevation-1__3lk2A\",\"elevation-2\":\"ListContractsScreen_elevation-2__1_v4M\",\"elevation-3\":\"ListContractsScreen_elevation-3__1qRVT\",\"elevation-4\":\"ListContractsScreen_elevation-4__KGwwv\",\"elevation-5\":\"ListContractsScreen_elevation-5__2Lh-q\",\"elevation-6\":\"ListContractsScreen_elevation-6__3bufT\",\"elevation-7\":\"ListContractsScreen_elevation-7__1-Ahn\",\"elevation-8\":\"ListContractsScreen_elevation-8__2stxT\",\"elevation-9\":\"ListContractsScreen_elevation-9__3QDwu\",\"elevation-10\":\"ListContractsScreen_elevation-10__1XLXn\",\"elevation-11\":\"ListContractsScreen_elevation-11__2C5n4\",\"elevation-12\":\"ListContractsScreen_elevation-12__4p-wS\",\"elevation-13\":\"ListContractsScreen_elevation-13__YTPP_\",\"elevation-14\":\"ListContractsScreen_elevation-14__1ggA3\",\"elevation-15\":\"ListContractsScreen_elevation-15__1EXBG\",\"elevation-16\":\"ListContractsScreen_elevation-16__3K8nQ\",\"elevation-17\":\"ListContractsScreen_elevation-17__10Kmg\",\"elevation-18\":\"ListContractsScreen_elevation-18__pohAf\",\"elevation-19\":\"ListContractsScreen_elevation-19__17UWc\",\"elevation-20\":\"ListContractsScreen_elevation-20__12kLJ\",\"elevation-21\":\"ListContractsScreen_elevation-21__2EN92\",\"elevation-22\":\"ListContractsScreen_elevation-22__31Tvc\",\"elevation-23\":\"ListContractsScreen_elevation-23__9mVKF\",\"elevation-24\":\"ListContractsScreen_elevation-24__Eo7pX\",\"content\":\"ListContractsScreen_content__1MnYD\",\"title\":\"ListContractsScreen_title__2DsUB\",\"addIcon\":\"ListContractsScreen_addIcon__cRQYe\",\"status\":\"ListContractsScreen_status__F_wN3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InputInfoWarning_elevation-1__2irPl\",\"elevation-2\":\"InputInfoWarning_elevation-2__2ZY8u\",\"elevation-3\":\"InputInfoWarning_elevation-3__149YS\",\"elevation-4\":\"InputInfoWarning_elevation-4__jAB2T\",\"elevation-5\":\"InputInfoWarning_elevation-5__3sc-Y\",\"elevation-6\":\"InputInfoWarning_elevation-6__3H5q-\",\"elevation-7\":\"InputInfoWarning_elevation-7__1hrVK\",\"elevation-8\":\"InputInfoWarning_elevation-8__2QXwl\",\"elevation-9\":\"InputInfoWarning_elevation-9__1PQRJ\",\"elevation-10\":\"InputInfoWarning_elevation-10__2-r1_\",\"elevation-11\":\"InputInfoWarning_elevation-11__lb6Bc\",\"elevation-12\":\"InputInfoWarning_elevation-12__QiSl2\",\"elevation-13\":\"InputInfoWarning_elevation-13__pJbrK\",\"elevation-14\":\"InputInfoWarning_elevation-14__3un9C\",\"elevation-15\":\"InputInfoWarning_elevation-15__N25tq\",\"elevation-16\":\"InputInfoWarning_elevation-16__1jod2\",\"elevation-17\":\"InputInfoWarning_elevation-17__1bN0G\",\"elevation-18\":\"InputInfoWarning_elevation-18__3AMWK\",\"elevation-19\":\"InputInfoWarning_elevation-19__FlHqM\",\"elevation-20\":\"InputInfoWarning_elevation-20__3QwRw\",\"elevation-21\":\"InputInfoWarning_elevation-21__2yLTe\",\"elevation-22\":\"InputInfoWarning_elevation-22__2vT4_\",\"elevation-23\":\"InputInfoWarning_elevation-23__3yIs5\",\"elevation-24\":\"InputInfoWarning_elevation-24__1sHCd\",\"container\":\"InputInfoWarning_container__3PAtQ\",\"message\":\"InputInfoWarning_message__3aUoc\",\"messageWarning\":\"InputInfoWarning_messageWarning__2KTAT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FiltersButton_elevation-1__30GY0\",\"elevation-2\":\"FiltersButton_elevation-2__349Zd\",\"elevation-3\":\"FiltersButton_elevation-3__2wW3Z\",\"elevation-4\":\"FiltersButton_elevation-4__2h5oL\",\"elevation-5\":\"FiltersButton_elevation-5__mdYeM\",\"elevation-6\":\"FiltersButton_elevation-6__2vWmK\",\"elevation-7\":\"FiltersButton_elevation-7__1JV_f\",\"elevation-8\":\"FiltersButton_elevation-8__2-piy\",\"elevation-9\":\"FiltersButton_elevation-9__3cCs8\",\"elevation-10\":\"FiltersButton_elevation-10__1anje\",\"elevation-11\":\"FiltersButton_elevation-11__RuwbV\",\"elevation-12\":\"FiltersButton_elevation-12__3MiYZ\",\"elevation-13\":\"FiltersButton_elevation-13__3DgT9\",\"elevation-14\":\"FiltersButton_elevation-14__3EXDM\",\"elevation-15\":\"FiltersButton_elevation-15__22We2\",\"elevation-16\":\"FiltersButton_elevation-16__E2pLm\",\"elevation-17\":\"FiltersButton_elevation-17__2E4rb\",\"elevation-18\":\"FiltersButton_elevation-18__18tK4\",\"elevation-19\":\"FiltersButton_elevation-19__3igry\",\"elevation-20\":\"FiltersButton_elevation-20__LAVaR\",\"elevation-21\":\"FiltersButton_elevation-21__3aBMX\",\"elevation-22\":\"FiltersButton_elevation-22__1f465\",\"elevation-23\":\"FiltersButton_elevation-23__2QwkV\",\"elevation-24\":\"FiltersButton_elevation-24__2igqc\",\"popoverContainer\":\"FiltersButton_popoverContainer__2hEHt\",\"counterList\":\"FiltersButton_counterList__3ania\",\"counterNumber\":\"FiltersButton_counterNumber__104hF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ConsumesChartBox_elevation-1__2Gp-A\",\"elevation-2\":\"ConsumesChartBox_elevation-2__1OxRY\",\"elevation-3\":\"ConsumesChartBox_elevation-3__3_iHV\",\"elevation-4\":\"ConsumesChartBox_elevation-4__-cMzy\",\"elevation-5\":\"ConsumesChartBox_elevation-5__9Gpgg\",\"elevation-6\":\"ConsumesChartBox_elevation-6__2q0rw\",\"elevation-7\":\"ConsumesChartBox_elevation-7__3IBno\",\"elevation-8\":\"ConsumesChartBox_elevation-8__3DlPQ\",\"elevation-9\":\"ConsumesChartBox_elevation-9__2XzR0\",\"elevation-10\":\"ConsumesChartBox_elevation-10__2Xn6D\",\"elevation-11\":\"ConsumesChartBox_elevation-11__15Llu\",\"elevation-12\":\"ConsumesChartBox_elevation-12__2jjLI\",\"elevation-13\":\"ConsumesChartBox_elevation-13__1LdCp\",\"elevation-14\":\"ConsumesChartBox_elevation-14__2Ibr2\",\"elevation-15\":\"ConsumesChartBox_elevation-15__2g3SF\",\"elevation-16\":\"ConsumesChartBox_elevation-16__22u-G\",\"elevation-17\":\"ConsumesChartBox_elevation-17__1my1W\",\"elevation-18\":\"ConsumesChartBox_elevation-18__1xVDX\",\"elevation-19\":\"ConsumesChartBox_elevation-19__3H-OQ\",\"elevation-20\":\"ConsumesChartBox_elevation-20__xRlVY\",\"elevation-21\":\"ConsumesChartBox_elevation-21__o0-N7\",\"elevation-22\":\"ConsumesChartBox_elevation-22__Pg9-L\",\"elevation-23\":\"ConsumesChartBox_elevation-23__2qw0X\",\"elevation-24\":\"ConsumesChartBox_elevation-24__2WhnN\",\"optionsContainer\":\"ConsumesChartBox_optionsContainer__2LmHF\",\"year\":\"ConsumesChartBox_year__2pmrh\",\"centerAlign\":\"ConsumesChartBox_centerAlign__1vQKS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"noEnoughInfoText\":\"ExpensesChart_noEnoughInfoText__1420m\",\"chartContainer\":\"ExpensesChart_chartContainer__2WXYX\",\"centerAlign\":\"ExpensesChart_centerAlign__1iYV1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MonthlyCostChartBox_elevation-1__1lY6X\",\"elevation-2\":\"MonthlyCostChartBox_elevation-2__WsGNU\",\"elevation-3\":\"MonthlyCostChartBox_elevation-3__3UaDu\",\"elevation-4\":\"MonthlyCostChartBox_elevation-4__2hcXk\",\"elevation-5\":\"MonthlyCostChartBox_elevation-5__XCWT-\",\"elevation-6\":\"MonthlyCostChartBox_elevation-6__3dHlZ\",\"elevation-7\":\"MonthlyCostChartBox_elevation-7__1Kjyf\",\"elevation-8\":\"MonthlyCostChartBox_elevation-8__3aUme\",\"elevation-9\":\"MonthlyCostChartBox_elevation-9__1Qkf5\",\"elevation-10\":\"MonthlyCostChartBox_elevation-10__1LjK8\",\"elevation-11\":\"MonthlyCostChartBox_elevation-11__3oVk4\",\"elevation-12\":\"MonthlyCostChartBox_elevation-12__1EUXT\",\"elevation-13\":\"MonthlyCostChartBox_elevation-13__Icife\",\"elevation-14\":\"MonthlyCostChartBox_elevation-14__3M1Cz\",\"elevation-15\":\"MonthlyCostChartBox_elevation-15__1dPrR\",\"elevation-16\":\"MonthlyCostChartBox_elevation-16__183cD\",\"elevation-17\":\"MonthlyCostChartBox_elevation-17__5SaFA\",\"elevation-18\":\"MonthlyCostChartBox_elevation-18__3LmAW\",\"elevation-19\":\"MonthlyCostChartBox_elevation-19__25S_c\",\"elevation-20\":\"MonthlyCostChartBox_elevation-20__1_UBl\",\"elevation-21\":\"MonthlyCostChartBox_elevation-21__2gWjt\",\"elevation-22\":\"MonthlyCostChartBox_elevation-22__29Qq_\",\"elevation-23\":\"MonthlyCostChartBox_elevation-23__rW9ZR\",\"elevation-24\":\"MonthlyCostChartBox_elevation-24__3Fl0Y\",\"optionsContainer\":\"MonthlyCostChartBox_optionsContainer__1DBXY\",\"year\":\"MonthlyCostChartBox_year__2OepC\",\"centerAlign\":\"MonthlyCostChartBox_centerAlign__ZFDOe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MonthlyRouteChartBox_elevation-1__2aYuX\",\"elevation-2\":\"MonthlyRouteChartBox_elevation-2__2-s6e\",\"elevation-3\":\"MonthlyRouteChartBox_elevation-3__DfZE5\",\"elevation-4\":\"MonthlyRouteChartBox_elevation-4__CI-9Y\",\"elevation-5\":\"MonthlyRouteChartBox_elevation-5__3wbMB\",\"elevation-6\":\"MonthlyRouteChartBox_elevation-6__3Tk08\",\"elevation-7\":\"MonthlyRouteChartBox_elevation-7__3S-9o\",\"elevation-8\":\"MonthlyRouteChartBox_elevation-8__3T4M9\",\"elevation-9\":\"MonthlyRouteChartBox_elevation-9__3ljz7\",\"elevation-10\":\"MonthlyRouteChartBox_elevation-10__jtMsH\",\"elevation-11\":\"MonthlyRouteChartBox_elevation-11__2tGJ3\",\"elevation-12\":\"MonthlyRouteChartBox_elevation-12__2azqk\",\"elevation-13\":\"MonthlyRouteChartBox_elevation-13__95hKz\",\"elevation-14\":\"MonthlyRouteChartBox_elevation-14__1I4sZ\",\"elevation-15\":\"MonthlyRouteChartBox_elevation-15__2RdaR\",\"elevation-16\":\"MonthlyRouteChartBox_elevation-16__1TLzr\",\"elevation-17\":\"MonthlyRouteChartBox_elevation-17__33wbk\",\"elevation-18\":\"MonthlyRouteChartBox_elevation-18__lbAMO\",\"elevation-19\":\"MonthlyRouteChartBox_elevation-19__2No2L\",\"elevation-20\":\"MonthlyRouteChartBox_elevation-20__2MfdX\",\"elevation-21\":\"MonthlyRouteChartBox_elevation-21__374wx\",\"elevation-22\":\"MonthlyRouteChartBox_elevation-22__2P6lf\",\"elevation-23\":\"MonthlyRouteChartBox_elevation-23__1QVn-\",\"elevation-24\":\"MonthlyRouteChartBox_elevation-24__2DUdE\",\"optionsContainer\":\"MonthlyRouteChartBox_optionsContainer__3cTRM\",\"year\":\"MonthlyRouteChartBox_year__8rest\",\"centerAlign\":\"MonthlyRouteChartBox_centerAlign__KALJX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InputGroupDate_elevation-1__1Fw2T\",\"elevation-2\":\"InputGroupDate_elevation-2__1nvm8\",\"elevation-3\":\"InputGroupDate_elevation-3__qLJBu\",\"elevation-4\":\"InputGroupDate_elevation-4__3D21h\",\"elevation-5\":\"InputGroupDate_elevation-5__1CNgC\",\"elevation-6\":\"InputGroupDate_elevation-6__g9niD\",\"elevation-7\":\"InputGroupDate_elevation-7__G6zJZ\",\"elevation-8\":\"InputGroupDate_elevation-8__149TY\",\"elevation-9\":\"InputGroupDate_elevation-9__1ozja\",\"elevation-10\":\"InputGroupDate_elevation-10__3hCCS\",\"elevation-11\":\"InputGroupDate_elevation-11__1CKjd\",\"elevation-12\":\"InputGroupDate_elevation-12__1lXar\",\"elevation-13\":\"InputGroupDate_elevation-13__3mBDy\",\"elevation-14\":\"InputGroupDate_elevation-14__yEBRn\",\"elevation-15\":\"InputGroupDate_elevation-15__ZHUQ5\",\"elevation-16\":\"InputGroupDate_elevation-16__3lGKh\",\"elevation-17\":\"InputGroupDate_elevation-17__1mtra\",\"elevation-18\":\"InputGroupDate_elevation-18__2e3Jf\",\"elevation-19\":\"InputGroupDate_elevation-19__1IcsM\",\"elevation-20\":\"InputGroupDate_elevation-20__QspEM\",\"elevation-21\":\"InputGroupDate_elevation-21__16LU8\",\"elevation-22\":\"InputGroupDate_elevation-22__20REf\",\"elevation-23\":\"InputGroupDate_elevation-23__3cBcM\",\"elevation-24\":\"InputGroupDate_elevation-24__1N2In\",\"container\":\"InputGroupDate_container__eJ502\",\"leftChild\":\"InputGroupDate_leftChild__1BI5u\",\"rightChild\":\"InputGroupDate_rightChild__38oIG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"div\":\"HelperModal_div__2s5el\",\"title\":\"HelperModal_title__2T6Ej\",\"text\":\"HelperModal_text__eW60x\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleModelsFiltersScreen_elevation-1__27_hO\",\"elevation-2\":\"VehicleModelsFiltersScreen_elevation-2__1Zcod\",\"elevation-3\":\"VehicleModelsFiltersScreen_elevation-3__2SawT\",\"elevation-4\":\"VehicleModelsFiltersScreen_elevation-4__MFsfR\",\"elevation-5\":\"VehicleModelsFiltersScreen_elevation-5__38o98\",\"elevation-6\":\"VehicleModelsFiltersScreen_elevation-6__3x5xa\",\"elevation-7\":\"VehicleModelsFiltersScreen_elevation-7__1k7iL\",\"elevation-8\":\"VehicleModelsFiltersScreen_elevation-8__1vj4s\",\"elevation-9\":\"VehicleModelsFiltersScreen_elevation-9__3wXOO\",\"elevation-10\":\"VehicleModelsFiltersScreen_elevation-10__wEaEv\",\"elevation-11\":\"VehicleModelsFiltersScreen_elevation-11__smeWy\",\"elevation-12\":\"VehicleModelsFiltersScreen_elevation-12__15dlh\",\"elevation-13\":\"VehicleModelsFiltersScreen_elevation-13__pwz3k\",\"elevation-14\":\"VehicleModelsFiltersScreen_elevation-14__2atua\",\"elevation-15\":\"VehicleModelsFiltersScreen_elevation-15__3MA3L\",\"elevation-16\":\"VehicleModelsFiltersScreen_elevation-16__1H8YU\",\"elevation-17\":\"VehicleModelsFiltersScreen_elevation-17__2lwBt\",\"elevation-18\":\"VehicleModelsFiltersScreen_elevation-18__4MhPs\",\"elevation-19\":\"VehicleModelsFiltersScreen_elevation-19__1-Ee3\",\"elevation-20\":\"VehicleModelsFiltersScreen_elevation-20__1Ugll\",\"elevation-21\":\"VehicleModelsFiltersScreen_elevation-21__2qbO1\",\"elevation-22\":\"VehicleModelsFiltersScreen_elevation-22__1UE57\",\"elevation-23\":\"VehicleModelsFiltersScreen_elevation-23__3IP0a\",\"elevation-24\":\"VehicleModelsFiltersScreen_elevation-24__1iSJf\",\"bold\":\"VehicleModelsFiltersScreen_bold__2S_yt\",\"formContent\":\"VehicleModelsFiltersScreen_formContent__9g7pI\",\"buttonsFooter\":\"VehicleModelsFiltersScreen_buttonsFooter__1SHJL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"SuppliersFiltersScreen_elevation-1__1OV33\",\"elevation-2\":\"SuppliersFiltersScreen_elevation-2__1z0q8\",\"elevation-3\":\"SuppliersFiltersScreen_elevation-3__3oqA-\",\"elevation-4\":\"SuppliersFiltersScreen_elevation-4__NPYD9\",\"elevation-5\":\"SuppliersFiltersScreen_elevation-5__bhesz\",\"elevation-6\":\"SuppliersFiltersScreen_elevation-6__3LeCk\",\"elevation-7\":\"SuppliersFiltersScreen_elevation-7__14Ag-\",\"elevation-8\":\"SuppliersFiltersScreen_elevation-8__3XZPE\",\"elevation-9\":\"SuppliersFiltersScreen_elevation-9__18b7x\",\"elevation-10\":\"SuppliersFiltersScreen_elevation-10__39zBC\",\"elevation-11\":\"SuppliersFiltersScreen_elevation-11__Zv_Nd\",\"elevation-12\":\"SuppliersFiltersScreen_elevation-12__3QMy9\",\"elevation-13\":\"SuppliersFiltersScreen_elevation-13__2-Jwj\",\"elevation-14\":\"SuppliersFiltersScreen_elevation-14__1FfyZ\",\"elevation-15\":\"SuppliersFiltersScreen_elevation-15__2T3GE\",\"elevation-16\":\"SuppliersFiltersScreen_elevation-16__17zro\",\"elevation-17\":\"SuppliersFiltersScreen_elevation-17__2mKha\",\"elevation-18\":\"SuppliersFiltersScreen_elevation-18__1j6IQ\",\"elevation-19\":\"SuppliersFiltersScreen_elevation-19__wSo1Y\",\"elevation-20\":\"SuppliersFiltersScreen_elevation-20__2hW-3\",\"elevation-21\":\"SuppliersFiltersScreen_elevation-21__16SXA\",\"elevation-22\":\"SuppliersFiltersScreen_elevation-22__3HXJ3\",\"elevation-23\":\"SuppliersFiltersScreen_elevation-23__2GF24\",\"elevation-24\":\"SuppliersFiltersScreen_elevation-24__jglfB\",\"bold\":\"SuppliersFiltersScreen_bold__3ME_2\",\"formContent\":\"SuppliersFiltersScreen_formContent__2ABk4\",\"buttonsFooter\":\"SuppliersFiltersScreen_buttonsFooter__3lXgl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"SummernoteController_elevation-1__r9C1_\",\"elevation-2\":\"SummernoteController_elevation-2__2j6mm\",\"elevation-3\":\"SummernoteController_elevation-3__oH_9B\",\"elevation-4\":\"SummernoteController_elevation-4__1EdWQ\",\"elevation-5\":\"SummernoteController_elevation-5__1gZvG\",\"elevation-6\":\"SummernoteController_elevation-6__1ejBG\",\"elevation-7\":\"SummernoteController_elevation-7__3RgUh\",\"elevation-8\":\"SummernoteController_elevation-8__3hF7o\",\"elevation-9\":\"SummernoteController_elevation-9__2ZHPQ\",\"elevation-10\":\"SummernoteController_elevation-10__2VJzz\",\"elevation-11\":\"SummernoteController_elevation-11__1_bBp\",\"elevation-12\":\"SummernoteController_elevation-12__11R6e\",\"elevation-13\":\"SummernoteController_elevation-13__18uSM\",\"elevation-14\":\"SummernoteController_elevation-14__6F1HV\",\"elevation-15\":\"SummernoteController_elevation-15__60GdR\",\"elevation-16\":\"SummernoteController_elevation-16__2FThK\",\"elevation-17\":\"SummernoteController_elevation-17__rtgNl\",\"elevation-18\":\"SummernoteController_elevation-18__14RaB\",\"elevation-19\":\"SummernoteController_elevation-19__1z3C1\",\"elevation-20\":\"SummernoteController_elevation-20__2vVj_\",\"elevation-21\":\"SummernoteController_elevation-21__kTb-a\",\"elevation-22\":\"SummernoteController_elevation-22__1B_FA\",\"elevation-23\":\"SummernoteController_elevation-23__35ldD\",\"elevation-24\":\"SummernoteController_elevation-24__1C2HZ\",\"summernote\":\"SummernoteController_summernote__2wJoW\",\"placeholder\":\"SummernoteController_placeholder__1coWT\",\"disabled\":\"SummernoteController_disabled__359Ao\",\"disabledSummernote\":\"SummernoteController_disabledSummernote__3ZvIW\",\"menuItem\":\"SummernoteController_menuItem__2JtVE\",\"menuItemIcon\":\"SummernoteController_menuItemIcon__3DSX3\",\"menuItemDanger\":\"SummernoteController_menuItemDanger__2sN69\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"UsersFiltersScreen_elevation-1__JOdMY\",\"elevation-2\":\"UsersFiltersScreen_elevation-2__e0XRj\",\"elevation-3\":\"UsersFiltersScreen_elevation-3__1zwUA\",\"elevation-4\":\"UsersFiltersScreen_elevation-4__3Vlq5\",\"elevation-5\":\"UsersFiltersScreen_elevation-5__35Ro_\",\"elevation-6\":\"UsersFiltersScreen_elevation-6__WoFYb\",\"elevation-7\":\"UsersFiltersScreen_elevation-7__2zUxw\",\"elevation-8\":\"UsersFiltersScreen_elevation-8__1Uxnf\",\"elevation-9\":\"UsersFiltersScreen_elevation-9__1Qa8-\",\"elevation-10\":\"UsersFiltersScreen_elevation-10__ORFcL\",\"elevation-11\":\"UsersFiltersScreen_elevation-11__LtsW-\",\"elevation-12\":\"UsersFiltersScreen_elevation-12__3lc2U\",\"elevation-13\":\"UsersFiltersScreen_elevation-13__2ZmHH\",\"elevation-14\":\"UsersFiltersScreen_elevation-14__COe7t\",\"elevation-15\":\"UsersFiltersScreen_elevation-15__3ygvh\",\"elevation-16\":\"UsersFiltersScreen_elevation-16__2gqPu\",\"elevation-17\":\"UsersFiltersScreen_elevation-17__3e765\",\"elevation-18\":\"UsersFiltersScreen_elevation-18__2f5Yn\",\"elevation-19\":\"UsersFiltersScreen_elevation-19__3WLGH\",\"elevation-20\":\"UsersFiltersScreen_elevation-20__2FzjY\",\"elevation-21\":\"UsersFiltersScreen_elevation-21__1hNyq\",\"elevation-22\":\"UsersFiltersScreen_elevation-22__2Yu7T\",\"elevation-23\":\"UsersFiltersScreen_elevation-23__37cTj\",\"elevation-24\":\"UsersFiltersScreen_elevation-24__1-J3V\",\"bold\":\"UsersFiltersScreen_bold__2vSJQ\",\"formContent\":\"UsersFiltersScreen_formContent__2lmuP\",\"buttonsFooter\":\"UsersFiltersScreen_buttonsFooter__3oSEv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CompaniesScreen_elevation-1__3mew2\",\"elevation-2\":\"CompaniesScreen_elevation-2__3XxJu\",\"elevation-3\":\"CompaniesScreen_elevation-3__2Fc8_\",\"elevation-4\":\"CompaniesScreen_elevation-4__2Y6cV\",\"elevation-5\":\"CompaniesScreen_elevation-5__JstPz\",\"elevation-6\":\"CompaniesScreen_elevation-6__2FECV\",\"elevation-7\":\"CompaniesScreen_elevation-7__21NjP\",\"elevation-8\":\"CompaniesScreen_elevation-8__3Tvk6\",\"elevation-9\":\"CompaniesScreen_elevation-9__CFA1F\",\"elevation-10\":\"CompaniesScreen_elevation-10__2t5uL\",\"elevation-11\":\"CompaniesScreen_elevation-11__iYYpr\",\"elevation-12\":\"CompaniesScreen_elevation-12__ry3hB\",\"elevation-13\":\"CompaniesScreen_elevation-13__1cPw5\",\"elevation-14\":\"CompaniesScreen_elevation-14__KMWe-\",\"elevation-15\":\"CompaniesScreen_elevation-15__14gAp\",\"elevation-16\":\"CompaniesScreen_elevation-16__Co5sc\",\"elevation-17\":\"CompaniesScreen_elevation-17__3HGih\",\"elevation-18\":\"CompaniesScreen_elevation-18__1UrQM\",\"elevation-19\":\"CompaniesScreen_elevation-19__2bDBH\",\"elevation-20\":\"CompaniesScreen_elevation-20__EVhM2\",\"elevation-21\":\"CompaniesScreen_elevation-21__18lZL\",\"elevation-22\":\"CompaniesScreen_elevation-22__2QCC7\",\"elevation-23\":\"CompaniesScreen_elevation-23__3IhX9\",\"elevation-24\":\"CompaniesScreen_elevation-24__2zDNP\",\"filtersPopoverContainer\":\"CompaniesScreen_filtersPopoverContainer__2zcy0\",\"counterList\":\"CompaniesScreen_counterList__3rbJV\",\"counter\":\"CompaniesScreen_counter__1KLND\",\"counterNumber\":\"CompaniesScreen_counterNumber__2530f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DriverScreen_elevation-1__YMMLa\",\"elevation-2\":\"DriverScreen_elevation-2__27q5w\",\"elevation-3\":\"DriverScreen_elevation-3__S3YXQ\",\"elevation-4\":\"DriverScreen_elevation-4__1huex\",\"elevation-5\":\"DriverScreen_elevation-5__17x4q\",\"elevation-6\":\"DriverScreen_elevation-6__3xBiH\",\"elevation-7\":\"DriverScreen_elevation-7__1oqhn\",\"elevation-8\":\"DriverScreen_elevation-8__30l8D\",\"elevation-9\":\"DriverScreen_elevation-9__2UyGB\",\"elevation-10\":\"DriverScreen_elevation-10__3O--W\",\"elevation-11\":\"DriverScreen_elevation-11__29aMW\",\"elevation-12\":\"DriverScreen_elevation-12__2rypE\",\"elevation-13\":\"DriverScreen_elevation-13__c51MR\",\"elevation-14\":\"DriverScreen_elevation-14__28Rg_\",\"elevation-15\":\"DriverScreen_elevation-15__2pI1Z\",\"elevation-16\":\"DriverScreen_elevation-16__XSDmj\",\"elevation-17\":\"DriverScreen_elevation-17__2Npmo\",\"elevation-18\":\"DriverScreen_elevation-18__3Wu0x\",\"elevation-19\":\"DriverScreen_elevation-19___0woG\",\"elevation-20\":\"DriverScreen_elevation-20__3yrh6\",\"elevation-21\":\"DriverScreen_elevation-21__3Zsba\",\"elevation-22\":\"DriverScreen_elevation-22__3-U3C\",\"elevation-23\":\"DriverScreen_elevation-23__2xm7J\",\"elevation-24\":\"DriverScreen_elevation-24__wLrYH\",\"filtersPopoverContainer\":\"DriverScreen_filtersPopoverContainer__2ulge\",\"counterList\":\"DriverScreen_counterList__JFUgy\",\"counterNumber\":\"DriverScreen_counterNumber__2N90F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ForbiddenScreen_elevation-1__1vrkA\",\"elevation-2\":\"ForbiddenScreen_elevation-2__17NsZ\",\"elevation-3\":\"ForbiddenScreen_elevation-3__1UcOA\",\"elevation-4\":\"ForbiddenScreen_elevation-4__Eqev5\",\"elevation-5\":\"ForbiddenScreen_elevation-5__wJKNq\",\"elevation-6\":\"ForbiddenScreen_elevation-6__UqrSH\",\"elevation-7\":\"ForbiddenScreen_elevation-7__3HCJ-\",\"elevation-8\":\"ForbiddenScreen_elevation-8__3Icfn\",\"elevation-9\":\"ForbiddenScreen_elevation-9__6gEzC\",\"elevation-10\":\"ForbiddenScreen_elevation-10__1YVB2\",\"elevation-11\":\"ForbiddenScreen_elevation-11__1Iqrr\",\"elevation-12\":\"ForbiddenScreen_elevation-12__6FVlx\",\"elevation-13\":\"ForbiddenScreen_elevation-13__uopwf\",\"elevation-14\":\"ForbiddenScreen_elevation-14__12O0R\",\"elevation-15\":\"ForbiddenScreen_elevation-15__3QFKS\",\"elevation-16\":\"ForbiddenScreen_elevation-16__3GZoc\",\"elevation-17\":\"ForbiddenScreen_elevation-17__FPYSU\",\"elevation-18\":\"ForbiddenScreen_elevation-18__1e72d\",\"elevation-19\":\"ForbiddenScreen_elevation-19__3YSqt\",\"elevation-20\":\"ForbiddenScreen_elevation-20__2SfiG\",\"elevation-21\":\"ForbiddenScreen_elevation-21__135dr\",\"elevation-22\":\"ForbiddenScreen_elevation-22__bz2eo\",\"elevation-23\":\"ForbiddenScreen_elevation-23__5DOtv\",\"elevation-24\":\"ForbiddenScreen_elevation-24__3Ve4l\",\"container\":\"ForbiddenScreen_container__2kbkQ\",\"sidebarContainer\":\"ForbiddenScreen_sidebarContainer__3ImOU\",\"contentContainer\":\"ForbiddenScreen_contentContainer__2W-7s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CommunicationsDetails_elevation-1__ba4sC\",\"elevation-2\":\"CommunicationsDetails_elevation-2__13XL-\",\"elevation-3\":\"CommunicationsDetails_elevation-3__2siEi\",\"elevation-4\":\"CommunicationsDetails_elevation-4__ClleW\",\"elevation-5\":\"CommunicationsDetails_elevation-5__2e9l_\",\"elevation-6\":\"CommunicationsDetails_elevation-6__1Xzp-\",\"elevation-7\":\"CommunicationsDetails_elevation-7__2TXEh\",\"elevation-8\":\"CommunicationsDetails_elevation-8__1WtpF\",\"elevation-9\":\"CommunicationsDetails_elevation-9__3mpqT\",\"elevation-10\":\"CommunicationsDetails_elevation-10__2kIL9\",\"elevation-11\":\"CommunicationsDetails_elevation-11__170vG\",\"elevation-12\":\"CommunicationsDetails_elevation-12__778SA\",\"elevation-13\":\"CommunicationsDetails_elevation-13__1wzcg\",\"elevation-14\":\"CommunicationsDetails_elevation-14__2cPRf\",\"elevation-15\":\"CommunicationsDetails_elevation-15__2IP01\",\"elevation-16\":\"CommunicationsDetails_elevation-16__3isiM\",\"elevation-17\":\"CommunicationsDetails_elevation-17__3qcZv\",\"elevation-18\":\"CommunicationsDetails_elevation-18__3zZa4\",\"elevation-19\":\"CommunicationsDetails_elevation-19__3wSq7\",\"elevation-20\":\"CommunicationsDetails_elevation-20__1Xk-c\",\"elevation-21\":\"CommunicationsDetails_elevation-21__2jKKY\",\"elevation-22\":\"CommunicationsDetails_elevation-22__Z6UuZ\",\"elevation-23\":\"CommunicationsDetails_elevation-23__1t1RP\",\"elevation-24\":\"CommunicationsDetails_elevation-24__3ZGTX\",\"table\":\"CommunicationsDetails_table__2UaDQ\",\"searchContainer\":\"CommunicationsDetails_searchContainer__2pnmw\",\"search\":\"CommunicationsDetails_search__BU3ZA\",\"tableHeader\":\"CommunicationsDetails_tableHeader__1SBLn\",\"tableHeaderTitle\":\"CommunicationsDetails_tableHeaderTitle__3vmds\",\"container\":\"CommunicationsDetails_container__aM7WR\",\"infoMessage\":\"CommunicationsDetails_infoMessage__kaUDc\",\"expressionContainer\":\"CommunicationsDetails_expressionContainer__pCbXe\",\"configContainer\":\"CommunicationsDetails_configContainer__2IRkm\",\"communicationsContainer\":\"CommunicationsDetails_communicationsContainer__2Fb-f\",\"communicationContainer\":\"CommunicationsDetails_communicationContainer__TSyHZ\",\"communicationInfo\":\"CommunicationsDetails_communicationInfo__1hZ1W\",\"usersContainer\":\"CommunicationsDetails_usersContainer__Lrule\",\"userContainer\":\"CommunicationsDetails_userContainer__2ki5o\",\"userInfo\":\"CommunicationsDetails_userInfo__25REK\",\"name\":\"CommunicationsDetails_name__3ZsAe\",\"email\":\"CommunicationsDetails_email__3dRNf\",\"selected\":\"CommunicationsDetails_selected__3tytV\",\"rolesContainer\":\"CommunicationsDetails_rolesContainer__162Of\",\"roleContainer\":\"CommunicationsDetails_roleContainer__3c8tv\",\"roleInfo\":\"CommunicationsDetails_roleInfo__2T9eB\",\"checkbox\":\"CommunicationsDetails_checkbox__32iCv\",\"operationsContainer\":\"CommunicationsDetails_operationsContainer__21hoM\",\"multiButton\":\"CommunicationsDetails_multiButton__mw4bh\",\"rowHover\":\"CommunicationsDetails_rowHover__3G1rx\",\"bodyColumn\":\"CommunicationsDetails_bodyColumn__3EEiJ\",\"striped\":\"CommunicationsDetails_striped__1CZA_\",\"columnHeader\":\"CommunicationsDetails_columnHeader__1cojQ\",\"buttonContainer\":\"CommunicationsDetails_buttonContainer__FaOje\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"RulesDetails_elevation-1__3AQ22\",\"elevation-2\":\"RulesDetails_elevation-2__N2inl\",\"elevation-3\":\"RulesDetails_elevation-3__1ZaxE\",\"elevation-4\":\"RulesDetails_elevation-4__322DX\",\"elevation-5\":\"RulesDetails_elevation-5__3Ds0e\",\"elevation-6\":\"RulesDetails_elevation-6__2-vqj\",\"elevation-7\":\"RulesDetails_elevation-7__36TOW\",\"elevation-8\":\"RulesDetails_elevation-8__36hSp\",\"elevation-9\":\"RulesDetails_elevation-9__2bCJX\",\"elevation-10\":\"RulesDetails_elevation-10__3eJnd\",\"elevation-11\":\"RulesDetails_elevation-11__3a0zH\",\"elevation-12\":\"RulesDetails_elevation-12__2P88l\",\"elevation-13\":\"RulesDetails_elevation-13__3yffh\",\"elevation-14\":\"RulesDetails_elevation-14__2B5KI\",\"elevation-15\":\"RulesDetails_elevation-15__3o-n2\",\"elevation-16\":\"RulesDetails_elevation-16__2z1g5\",\"elevation-17\":\"RulesDetails_elevation-17__3SqdE\",\"elevation-18\":\"RulesDetails_elevation-18__1f2na\",\"elevation-19\":\"RulesDetails_elevation-19__1m_dP\",\"elevation-20\":\"RulesDetails_elevation-20__2vT1o\",\"elevation-21\":\"RulesDetails_elevation-21__2503C\",\"elevation-22\":\"RulesDetails_elevation-22__23T43\",\"elevation-23\":\"RulesDetails_elevation-23__3j3pg\",\"elevation-24\":\"RulesDetails_elevation-24__zpl8G\",\"table\":\"RulesDetails_table__2XOJp\",\"searchContainer\":\"RulesDetails_searchContainer__Vsv5A\",\"search\":\"RulesDetails_search__1t96J\",\"tableHeader\":\"RulesDetails_tableHeader__2EjZ3\",\"tableHeaderTitle\":\"RulesDetails_tableHeaderTitle__3zI54\",\"container\":\"RulesDetails_container__1OehH\",\"expressionContainer\":\"RulesDetails_expressionContainer__3BtB0\",\"configContainer\":\"RulesDetails_configContainer__3Td7e\",\"rulesContainer\":\"RulesDetails_rulesContainer__3VpdC\",\"ruleContainer\":\"RulesDetails_ruleContainer__3JKyv\",\"ruleInfo\":\"RulesDetails_ruleInfo__1z02c\",\"usersContainer\":\"RulesDetails_usersContainer__3NO4w\",\"userContainer\":\"RulesDetails_userContainer__1_j5T\",\"userInfo\":\"RulesDetails_userInfo__3LAAM\",\"name\":\"RulesDetails_name__23mOz\",\"email\":\"RulesDetails_email__3E1HE\",\"selected\":\"RulesDetails_selected__tpCA8\",\"rolesContainer\":\"RulesDetails_rolesContainer__Nxz96\",\"roleContainer\":\"RulesDetails_roleContainer__3uFa-\",\"roleInfo\":\"RulesDetails_roleInfo__2cQ_j\",\"checkbox\":\"RulesDetails_checkbox__Be3GF\",\"operationsContainer\":\"RulesDetails_operationsContainer__oNCrK\",\"multiButton\":\"RulesDetails_multiButton__3z6Y8\",\"rowHover\":\"RulesDetails_rowHover__2MCUQ\",\"bodyColumn\":\"RulesDetails_bodyColumn__3Pu68\",\"striped\":\"RulesDetails_striped__1ranr\",\"columnHeader\":\"RulesDetails_columnHeader__oNGxQ\",\"buttonContainer\":\"RulesDetails_buttonContainer__1rmQd\",\"alert\":\"RulesDetails_alert__EOndr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarForm_elevation-1__vFttH\",\"elevation-2\":\"CarForm_elevation-2__9PTjs\",\"elevation-3\":\"CarForm_elevation-3__1mrt4\",\"elevation-4\":\"CarForm_elevation-4___ILs3\",\"elevation-5\":\"CarForm_elevation-5__yekJm\",\"elevation-6\":\"CarForm_elevation-6__3t-cu\",\"elevation-7\":\"CarForm_elevation-7__2k9lq\",\"elevation-8\":\"CarForm_elevation-8__1bgL8\",\"elevation-9\":\"CarForm_elevation-9__13STE\",\"elevation-10\":\"CarForm_elevation-10__3Kyug\",\"elevation-11\":\"CarForm_elevation-11__1R4RF\",\"elevation-12\":\"CarForm_elevation-12__2hbzE\",\"elevation-13\":\"CarForm_elevation-13__3u9zH\",\"elevation-14\":\"CarForm_elevation-14__1SS3r\",\"elevation-15\":\"CarForm_elevation-15__7eQk7\",\"elevation-16\":\"CarForm_elevation-16__1_tcC\",\"elevation-17\":\"CarForm_elevation-17__16m7C\",\"elevation-18\":\"CarForm_elevation-18__L2HVD\",\"elevation-19\":\"CarForm_elevation-19__1urQo\",\"elevation-20\":\"CarForm_elevation-20__D8p8B\",\"elevation-21\":\"CarForm_elevation-21__nuhoQ\",\"elevation-22\":\"CarForm_elevation-22__26O9u\",\"elevation-23\":\"CarForm_elevation-23__2Lo6G\",\"elevation-24\":\"CarForm_elevation-24__1vAdE\",\"box\":\"CarForm_box__1Jhjp\",\"header\":\"CarForm_header__9o3QA\",\"icon\":\"CarForm_icon__3ZleQ\",\"content\":\"CarForm_content__1B6Gs\",\"condition\":\"CarForm_condition__1nG1v\",\"placeholder\":\"CarForm_placeholder__i7zEJ\",\"labelContainer\":\"CarForm_labelContainer__3g4zy\",\"selected\":\"CarForm_selected__2TOwS\",\"notSelected\":\"CarForm_notSelected__1djzc\",\"labelContent\":\"CarForm_labelContent__3rhkZ\",\"buttonsContainer\":\"CarForm_buttonsContainer__2qL69\",\"button\":\"CarForm_button__BAzLv\",\"fullWidth\":\"CarForm_fullWidth__11m5s\",\"warningInput\":\"CarForm_warningInput__3C_w8\",\"warningLabel\":\"CarForm_warningLabel__1NEqS\",\"label\":\"CarForm_label__1lwMb\",\"errorLabel\":\"CarForm_errorLabel__13ZkE\",\"section\":\"CarForm_section__1cugL\",\"sectionTitle\":\"CarForm_sectionTitle__rp161\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"PlansScreen_elevation-1__1mM1R\",\"elevation-2\":\"PlansScreen_elevation-2__1eZgX\",\"elevation-3\":\"PlansScreen_elevation-3__BCFvc\",\"elevation-4\":\"PlansScreen_elevation-4__2nUAR\",\"elevation-5\":\"PlansScreen_elevation-5__2USbK\",\"elevation-6\":\"PlansScreen_elevation-6__1kRwR\",\"elevation-7\":\"PlansScreen_elevation-7__1psip\",\"elevation-8\":\"PlansScreen_elevation-8__IgbJ4\",\"elevation-9\":\"PlansScreen_elevation-9__3VWS2\",\"elevation-10\":\"PlansScreen_elevation-10__1D9rX\",\"elevation-11\":\"PlansScreen_elevation-11__3ijSk\",\"elevation-12\":\"PlansScreen_elevation-12__3SDer\",\"elevation-13\":\"PlansScreen_elevation-13__3Uasr\",\"elevation-14\":\"PlansScreen_elevation-14__2oGsZ\",\"elevation-15\":\"PlansScreen_elevation-15__3Sv1G\",\"elevation-16\":\"PlansScreen_elevation-16__mb2c5\",\"elevation-17\":\"PlansScreen_elevation-17__jlpw3\",\"elevation-18\":\"PlansScreen_elevation-18__2k6KP\",\"elevation-19\":\"PlansScreen_elevation-19__3TcAY\",\"elevation-20\":\"PlansScreen_elevation-20__2hbEi\",\"elevation-21\":\"PlansScreen_elevation-21__3NN-b\",\"elevation-22\":\"PlansScreen_elevation-22__3dC07\",\"elevation-23\":\"PlansScreen_elevation-23__Luhdf\",\"elevation-24\":\"PlansScreen_elevation-24__3PNX4\",\"mainBox\":\"PlansScreen_mainBox__2JgGa\",\"headerBoxWarning\":\"PlansScreen_headerBoxWarning__2HCHD\",\"bold\":\"PlansScreen_bold__3lNDj\",\"companyRow\":\"PlansScreen_companyRow__9_DAV\",\"companyLogoCol\":\"PlansScreen_companyLogoCol__3P1UE\",\"companyLogo\":\"PlansScreen_companyLogo__2vVFo\",\"packsCol\":\"PlansScreen_packsCol__3OOMh\",\"resumeCol\":\"PlansScreen_resumeCol__1mcgH\",\"resumeBox\":\"PlansScreen_resumeBox__3XYjA\",\"colTitle\":\"PlansScreen_colTitle__2VtJP\",\"labelTitle\":\"PlansScreen_labelTitle__2kBSE\",\"label\":\"PlansScreen_label__21kjV\",\"resumeTitle\":\"PlansScreen_resumeTitle__1kzDy\",\"resumeRow\":\"PlansScreen_resumeRow__2jKZo\",\"alignRight\":\"PlansScreen_alignRight__31RGY\",\"box\":\"PlansScreen_box__2Km4r\",\"textContainer\":\"PlansScreen_textContainer__1_sEu\",\"addIcon\":\"PlansScreen_addIcon__20lyg\",\"text\":\"PlansScreen_text__14IPk\",\"planContainer\":\"PlansScreen_planContainer__2wLtk\",\"title\":\"PlansScreen_title__3iL7W\",\"validMonthsMessage\":\"PlansScreen_validMonthsMessage__1lvec\",\"boxExpired\":\"PlansScreen_boxExpired__31_d-\",\"plan\":\"PlansScreen_plan__Px64o\",\"alignCenter\":\"PlansScreen_alignCenter__hFXa_\",\"containerCards\":\"PlansScreen_containerCards__3bpF5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AnnotationsFormItem_elevation-1__nQ3Kz\",\"elevation-2\":\"AnnotationsFormItem_elevation-2__22vMj\",\"elevation-3\":\"AnnotationsFormItem_elevation-3__3qr4h\",\"elevation-4\":\"AnnotationsFormItem_elevation-4__RDYlr\",\"elevation-5\":\"AnnotationsFormItem_elevation-5__3k0R6\",\"elevation-6\":\"AnnotationsFormItem_elevation-6__AXJp7\",\"elevation-7\":\"AnnotationsFormItem_elevation-7__13U7-\",\"elevation-8\":\"AnnotationsFormItem_elevation-8__3aZiE\",\"elevation-9\":\"AnnotationsFormItem_elevation-9__rl2uJ\",\"elevation-10\":\"AnnotationsFormItem_elevation-10__3F1RQ\",\"elevation-11\":\"AnnotationsFormItem_elevation-11__3qcxl\",\"elevation-12\":\"AnnotationsFormItem_elevation-12__bOMUj\",\"elevation-13\":\"AnnotationsFormItem_elevation-13__1UmQk\",\"elevation-14\":\"AnnotationsFormItem_elevation-14__IyxNG\",\"elevation-15\":\"AnnotationsFormItem_elevation-15__3WAyy\",\"elevation-16\":\"AnnotationsFormItem_elevation-16__le8Jq\",\"elevation-17\":\"AnnotationsFormItem_elevation-17__1LYhL\",\"elevation-18\":\"AnnotationsFormItem_elevation-18__1B9nX\",\"elevation-19\":\"AnnotationsFormItem_elevation-19__1Q0f8\",\"elevation-20\":\"AnnotationsFormItem_elevation-20__UwUf3\",\"elevation-21\":\"AnnotationsFormItem_elevation-21__3iJ7o\",\"elevation-22\":\"AnnotationsFormItem_elevation-22__2ibJ_\",\"elevation-23\":\"AnnotationsFormItem_elevation-23__1gJ5J\",\"elevation-24\":\"AnnotationsFormItem_elevation-24__3KW-7\",\"containerEdit\":\"AnnotationsFormItem_containerEdit__7Jx_i\",\"containerError\":\"AnnotationsFormItem_containerError__1pcAh\",\"removeButton\":\"AnnotationsFormItem_removeButton__YclvT\",\"removeIcon\":\"AnnotationsFormItem_removeIcon__VyUc1\",\"label\":\"AnnotationsFormItem_label__wywSR\",\"rowSpace\":\"AnnotationsFormItem_rowSpace__cp6hC\",\"addIcon\":\"AnnotationsFormItem_addIcon__3GGoY\",\"containerDetails\":\"AnnotationsFormItem_containerDetails__3OnED\",\"rowSpaceDescription\":\"AnnotationsFormItem_rowSpaceDescription__7CD9f\",\"rightInfo\":\"AnnotationsFormItem_rightInfo__2UnIe\",\"statusContainer\":\"AnnotationsFormItem_statusContainer__2Mj8E\",\"status\":\"AnnotationsFormItem_status__1pIf3\",\"rowSpaceForm\":\"AnnotationsFormItem_rowSpaceForm__W0u_9\",\"rowSpaceSelects\":\"AnnotationsFormItem_rowSpaceSelects__UL2Nh\",\"spinner\":\"AnnotationsFormItem_spinner__1J3Il\",\"labelContainer\":\"AnnotationsFormItem_labelContainer__2WlWb\",\"selected\":\"AnnotationsFormItem_selected__kCHO3\",\"notSelected\":\"AnnotationsFormItem_notSelected__1V_uY\",\"labelContent\":\"AnnotationsFormItem_labelContent__2KQ7U\",\"rowDivider\":\"AnnotationsFormItem_rowDivider__20mGC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FormItem_elevation-1__13wUd\",\"elevation-2\":\"FormItem_elevation-2__pBNni\",\"elevation-3\":\"FormItem_elevation-3__3Dr7x\",\"elevation-4\":\"FormItem_elevation-4__1BlIz\",\"elevation-5\":\"FormItem_elevation-5__mRRYT\",\"elevation-6\":\"FormItem_elevation-6__1Kmj6\",\"elevation-7\":\"FormItem_elevation-7__JSDxI\",\"elevation-8\":\"FormItem_elevation-8__3URaX\",\"elevation-9\":\"FormItem_elevation-9__17rsf\",\"elevation-10\":\"FormItem_elevation-10__3yaAU\",\"elevation-11\":\"FormItem_elevation-11__PNZb2\",\"elevation-12\":\"FormItem_elevation-12__2qcsC\",\"elevation-13\":\"FormItem_elevation-13__1bt6A\",\"elevation-14\":\"FormItem_elevation-14__6gZNP\",\"elevation-15\":\"FormItem_elevation-15__3mXdg\",\"elevation-16\":\"FormItem_elevation-16__2yAQQ\",\"elevation-17\":\"FormItem_elevation-17__3PBvb\",\"elevation-18\":\"FormItem_elevation-18__2091A\",\"elevation-19\":\"FormItem_elevation-19__1pYXc\",\"elevation-20\":\"FormItem_elevation-20__J_Kpm\",\"elevation-21\":\"FormItem_elevation-21__1msSZ\",\"elevation-22\":\"FormItem_elevation-22__2uP-E\",\"elevation-23\":\"FormItem_elevation-23__1enxO\",\"elevation-24\":\"FormItem_elevation-24__3sVcx\",\"formItem\":\"FormItem_formItem__2EVlK\",\"flexProperties\":\"FormItem_flexProperties__1GzfY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InputError_elevation-1__1j4MW\",\"elevation-2\":\"InputError_elevation-2__3Ccll\",\"elevation-3\":\"InputError_elevation-3__1T5RV\",\"elevation-4\":\"InputError_elevation-4__1GGKT\",\"elevation-5\":\"InputError_elevation-5__2itsY\",\"elevation-6\":\"InputError_elevation-6__ceqUQ\",\"elevation-7\":\"InputError_elevation-7__19pKu\",\"elevation-8\":\"InputError_elevation-8__3gH-T\",\"elevation-9\":\"InputError_elevation-9__1jluB\",\"elevation-10\":\"InputError_elevation-10__3DYKU\",\"elevation-11\":\"InputError_elevation-11__1rXvp\",\"elevation-12\":\"InputError_elevation-12__HI2vz\",\"elevation-13\":\"InputError_elevation-13__1145K\",\"elevation-14\":\"InputError_elevation-14__wnuPN\",\"elevation-15\":\"InputError_elevation-15__AagNG\",\"elevation-16\":\"InputError_elevation-16__2to8E\",\"elevation-17\":\"InputError_elevation-17__3bmHU\",\"elevation-18\":\"InputError_elevation-18__uhnpr\",\"elevation-19\":\"InputError_elevation-19__2ehJs\",\"elevation-20\":\"InputError_elevation-20__3HKp8\",\"elevation-21\":\"InputError_elevation-21__1W3Y5\",\"elevation-22\":\"InputError_elevation-22__1TCF0\",\"elevation-23\":\"InputError_elevation-23__1214I\",\"elevation-24\":\"InputError_elevation-24__2fw3B\",\"message\":\"InputError_message__1YDpl\",\"messageWarning\":\"InputError_messageWarning__1buv8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesGpsScreen_elevation-1__1Nz_9\",\"elevation-2\":\"VehiclesGpsScreen_elevation-2__2_Oyv\",\"elevation-3\":\"VehiclesGpsScreen_elevation-3__24BnT\",\"elevation-4\":\"VehiclesGpsScreen_elevation-4__14tXA\",\"elevation-5\":\"VehiclesGpsScreen_elevation-5__1UfHM\",\"elevation-6\":\"VehiclesGpsScreen_elevation-6__3bMGF\",\"elevation-7\":\"VehiclesGpsScreen_elevation-7__kBtJb\",\"elevation-8\":\"VehiclesGpsScreen_elevation-8__2O8O-\",\"elevation-9\":\"VehiclesGpsScreen_elevation-9__SWASQ\",\"elevation-10\":\"VehiclesGpsScreen_elevation-10__3OsDo\",\"elevation-11\":\"VehiclesGpsScreen_elevation-11__bygXX\",\"elevation-12\":\"VehiclesGpsScreen_elevation-12__pP8GW\",\"elevation-13\":\"VehiclesGpsScreen_elevation-13__2JMHW\",\"elevation-14\":\"VehiclesGpsScreen_elevation-14__2cg8a\",\"elevation-15\":\"VehiclesGpsScreen_elevation-15__2lH1Q\",\"elevation-16\":\"VehiclesGpsScreen_elevation-16__1DHLE\",\"elevation-17\":\"VehiclesGpsScreen_elevation-17__reW71\",\"elevation-18\":\"VehiclesGpsScreen_elevation-18__3ZkZB\",\"elevation-19\":\"VehiclesGpsScreen_elevation-19__13hOY\",\"elevation-20\":\"VehiclesGpsScreen_elevation-20__2yjFX\",\"elevation-21\":\"VehiclesGpsScreen_elevation-21__1cAmW\",\"elevation-22\":\"VehiclesGpsScreen_elevation-22__1GAy9\",\"elevation-23\":\"VehiclesGpsScreen_elevation-23__-Jtrr\",\"elevation-24\":\"VehiclesGpsScreen_elevation-24__1EZmL\",\"container\":\"VehiclesGpsScreen_container__3NVXg\",\"map\":\"VehiclesGpsScreen_map__tDtGI\",\"currentPin\":\"VehiclesGpsScreen_currentPin__3tENP\",\"pr\":\"VehiclesGpsScreen_pr__3sinx\",\"pb\":\"VehiclesGpsScreen_pb__2RFYs\",\"mr\":\"VehiclesGpsScreen_mr__3rdgx\",\"inputGroup\":\"VehiclesGpsScreen_inputGroup__1qTOK\",\"input\":\"VehiclesGpsScreen_input__2cQDx\",\"alignRight\":\"VehiclesGpsScreen_alignRight__166wE\",\"cardFooter\":\"VehiclesGpsScreen_cardFooter__36tTL\",\"icon\":\"VehiclesGpsScreen_icon__22K1J\",\"iconSmall\":\"VehiclesGpsScreen_iconSmall__3rHDF\",\"iconLarge\":\"VehiclesGpsScreen_iconLarge__Zh2GU\",\"position\":\"VehiclesGpsScreen_position__1EELk\",\"pin\":\"VehiclesGpsScreen_pin__34lYB\",\"label\":\"VehiclesGpsScreen_label__11YBi\",\"geoLocation\":\"VehiclesGpsScreen_geoLocation__3Y0bl\",\"spaceBetween\":\"VehiclesGpsScreen_spaceBetween__247mx\",\"colLeft\":\"VehiclesGpsScreen_colLeft__395Xl\",\"selectTitle\":\"VehiclesGpsScreen_selectTitle__3zGkG\",\"selectCol\":\"VehiclesGpsScreen_selectCol__1D_4t\",\"trashButton\":\"VehiclesGpsScreen_trashButton__3cKJ8\",\"cardsList\":\"VehiclesGpsScreen_cardsList__ilaqO\",\"totalPoints\":\"VehiclesGpsScreen_totalPoints__1H6su\",\"card\":\"VehiclesGpsScreen_card__3QgnO\",\"selected\":\"VehiclesGpsScreen_selected__2U-Ux\",\"cardBody\":\"VehiclesGpsScreen_cardBody__1uODb\",\"cardHeader\":\"VehiclesGpsScreen_cardHeader__1uLPQ\",\"vehicle\":\"VehiclesGpsScreen_vehicle__2HyKB\",\"image\":\"VehiclesGpsScreen_image__1mOzO\",\"contentImage\":\"VehiclesGpsScreen_contentImage__NxD4B\",\"img\":\"VehiclesGpsScreen_img__2h0sY\",\"description\":\"VehiclesGpsScreen_description__pySV9\",\"bold\":\"VehiclesGpsScreen_bold__3Bd1a\",\"smallLabel\":\"VehiclesGpsScreen_smallLabel__3jXLa\",\"driver\":\"VehiclesGpsScreen_driver__3bbJE\",\"emptyContainerRow\":\"VehiclesGpsScreen_emptyContainerRow__14Hvf\",\"emptyContainer\":\"VehiclesGpsScreen_emptyContainer__3J2r0\",\"emptyLabel\":\"VehiclesGpsScreen_emptyLabel__1Pfoj\",\"circleButton\":\"VehiclesGpsScreen_circleButton__3p7yJ\",\"filtersPopoverContainer\":\"VehiclesGpsScreen_filtersPopoverContainer___5mjq\",\"counterList\":\"VehiclesGpsScreen_counterList__f6lGI\",\"counter\":\"VehiclesGpsScreen_counter__DktQx\",\"counterNumber\":\"VehiclesGpsScreen_counterNumber__2YKdf\",\"filterBadges\":\"VehiclesGpsScreen_filterBadges__3ufpr\",\"descriptionContainer\":\"VehiclesGpsScreen_descriptionContainer__a_A0H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"noEnoughInfoText\":\"ConsumesChart_noEnoughInfoText__1-FAi\",\"chartContainer\":\"ConsumesChart_chartContainer__396i0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ListChargesScreen_elevation-1__dyKu1\",\"elevation-2\":\"ListChargesScreen_elevation-2__3vZWd\",\"elevation-3\":\"ListChargesScreen_elevation-3__1xtc1\",\"elevation-4\":\"ListChargesScreen_elevation-4__2aPn0\",\"elevation-5\":\"ListChargesScreen_elevation-5__19KjJ\",\"elevation-6\":\"ListChargesScreen_elevation-6__3j2wF\",\"elevation-7\":\"ListChargesScreen_elevation-7__25jQt\",\"elevation-8\":\"ListChargesScreen_elevation-8__1u3NU\",\"elevation-9\":\"ListChargesScreen_elevation-9__34yuV\",\"elevation-10\":\"ListChargesScreen_elevation-10__2qosQ\",\"elevation-11\":\"ListChargesScreen_elevation-11__1ZQ6b\",\"elevation-12\":\"ListChargesScreen_elevation-12__2O8So\",\"elevation-13\":\"ListChargesScreen_elevation-13__vp3tt\",\"elevation-14\":\"ListChargesScreen_elevation-14__EMO70\",\"elevation-15\":\"ListChargesScreen_elevation-15__3J7zd\",\"elevation-16\":\"ListChargesScreen_elevation-16__2dUHY\",\"elevation-17\":\"ListChargesScreen_elevation-17__1Ef8z\",\"elevation-18\":\"ListChargesScreen_elevation-18__2pAkP\",\"elevation-19\":\"ListChargesScreen_elevation-19__2gEpG\",\"elevation-20\":\"ListChargesScreen_elevation-20__20JLi\",\"elevation-21\":\"ListChargesScreen_elevation-21__1u3X4\",\"elevation-22\":\"ListChargesScreen_elevation-22__3Orsp\",\"elevation-23\":\"ListChargesScreen_elevation-23__CgA2u\",\"elevation-24\":\"ListChargesScreen_elevation-24__3LbPe\",\"box\":\"ListChargesScreen_box__4rYlh\",\"tabHeader\":\"ListChargesScreen_tabHeader__3_3Op\",\"divSVG\":\"ListChargesScreen_divSVG__2--1l\",\"rowFlex\":\"ListChargesScreen_rowFlex__ns88d\",\"filtersPopoverContainer\":\"ListChargesScreen_filtersPopoverContainer__ziDYc\",\"counterList\":\"ListChargesScreen_counterList__3qhIS\",\"counterNumber\":\"ListChargesScreen_counterNumber__dRMTP\",\"refundTreatedArea\":\"ListChargesScreen_refundTreatedArea__2Ad1X\",\"panelSearch\":\"ListChargesScreen_panelSearch__2yloC\",\"searchValues\":\"ListChargesScreen_searchValues__1OQhJ\",\"moneyColumn\":\"ListChargesScreen_moneyColumn__1kR7w\",\"costColumn\":\"ListChargesScreen_costColumn__3tLc0\",\"secondRow\":\"ListChargesScreen_secondRow__3dTQl\",\"dateFrais\":\"ListChargesScreen_dateFrais__23f-Z\",\"cellContainer\":\"ListChargesScreen_cellContainer__J4Acr\",\"firstRow\":\"ListChargesScreen_firstRow__KqtRv\",\"bold\":\"ListChargesScreen_bold__d27Iu\",\"imageDescCell\":\"ListChargesScreen_imageDescCell__26ge4\",\"descCell\":\"ListChargesScreen_descCell__XW9LD\",\"contentImage\":\"ListChargesScreen_contentImage__3kcY6\",\"img\":\"ListChargesScreen_img__2c50P\",\"columnPlate\":\"ListChargesScreen_columnPlate__W-Hgm\",\"columnBrand\":\"ListChargesScreen_columnBrand__8yO8r\",\"columnSpec\":\"ListChargesScreen_columnSpec__2gHnv\",\"rowCounters\":\"ListChargesScreen_rowCounters__2AJ0s\",\"importIcon\":\"ListChargesScreen_importIcon__3AbhY\",\"emptyBorder\":\"ListChargesScreen_emptyBorder__2WsKG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlertsFiltersHeader_elevation-1__KKRaw\",\"elevation-2\":\"AlertsFiltersHeader_elevation-2__22IVf\",\"elevation-3\":\"AlertsFiltersHeader_elevation-3__14r3m\",\"elevation-4\":\"AlertsFiltersHeader_elevation-4__2_3Dv\",\"elevation-5\":\"AlertsFiltersHeader_elevation-5__3PsBq\",\"elevation-6\":\"AlertsFiltersHeader_elevation-6__1Lg92\",\"elevation-7\":\"AlertsFiltersHeader_elevation-7__2N3Ti\",\"elevation-8\":\"AlertsFiltersHeader_elevation-8__3GlVG\",\"elevation-9\":\"AlertsFiltersHeader_elevation-9__1gsl-\",\"elevation-10\":\"AlertsFiltersHeader_elevation-10__2_mjj\",\"elevation-11\":\"AlertsFiltersHeader_elevation-11__2NAsy\",\"elevation-12\":\"AlertsFiltersHeader_elevation-12__wSTCX\",\"elevation-13\":\"AlertsFiltersHeader_elevation-13__zsMV_\",\"elevation-14\":\"AlertsFiltersHeader_elevation-14__2FaJ7\",\"elevation-15\":\"AlertsFiltersHeader_elevation-15__1j4hJ\",\"elevation-16\":\"AlertsFiltersHeader_elevation-16__3z3-y\",\"elevation-17\":\"AlertsFiltersHeader_elevation-17__1oD9w\",\"elevation-18\":\"AlertsFiltersHeader_elevation-18__3XC0-\",\"elevation-19\":\"AlertsFiltersHeader_elevation-19__1hMNq\",\"elevation-20\":\"AlertsFiltersHeader_elevation-20__1bizz\",\"elevation-21\":\"AlertsFiltersHeader_elevation-21__1-odw\",\"elevation-22\":\"AlertsFiltersHeader_elevation-22__MjiXD\",\"elevation-23\":\"AlertsFiltersHeader_elevation-23__110oL\",\"elevation-24\":\"AlertsFiltersHeader_elevation-24__3ZdWT\",\"informationHeader\":\"AlertsFiltersHeader_informationHeader__3NFLu\",\"infoBadge\":\"AlertsFiltersHeader_infoBadge__3wqLf\",\"inputContainer\":\"AlertsFiltersHeader_inputContainer__oe5IX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarMonthlyChargesFiltersScreen_elevation-1__3F03G\",\"elevation-2\":\"CarMonthlyChargesFiltersScreen_elevation-2__3Q578\",\"elevation-3\":\"CarMonthlyChargesFiltersScreen_elevation-3__3cEiH\",\"elevation-4\":\"CarMonthlyChargesFiltersScreen_elevation-4__2SpTq\",\"elevation-5\":\"CarMonthlyChargesFiltersScreen_elevation-5__rsoNO\",\"elevation-6\":\"CarMonthlyChargesFiltersScreen_elevation-6__iCAfv\",\"elevation-7\":\"CarMonthlyChargesFiltersScreen_elevation-7__16kPn\",\"elevation-8\":\"CarMonthlyChargesFiltersScreen_elevation-8__2d3sw\",\"elevation-9\":\"CarMonthlyChargesFiltersScreen_elevation-9__3U2F2\",\"elevation-10\":\"CarMonthlyChargesFiltersScreen_elevation-10__3pEiL\",\"elevation-11\":\"CarMonthlyChargesFiltersScreen_elevation-11__uFm9-\",\"elevation-12\":\"CarMonthlyChargesFiltersScreen_elevation-12__34MAD\",\"elevation-13\":\"CarMonthlyChargesFiltersScreen_elevation-13__189ft\",\"elevation-14\":\"CarMonthlyChargesFiltersScreen_elevation-14__2pym-\",\"elevation-15\":\"CarMonthlyChargesFiltersScreen_elevation-15__23uv7\",\"elevation-16\":\"CarMonthlyChargesFiltersScreen_elevation-16__2bN5c\",\"elevation-17\":\"CarMonthlyChargesFiltersScreen_elevation-17__2cHbc\",\"elevation-18\":\"CarMonthlyChargesFiltersScreen_elevation-18__3Bj-7\",\"elevation-19\":\"CarMonthlyChargesFiltersScreen_elevation-19__17jqA\",\"elevation-20\":\"CarMonthlyChargesFiltersScreen_elevation-20__1xYoH\",\"elevation-21\":\"CarMonthlyChargesFiltersScreen_elevation-21__3dkia\",\"elevation-22\":\"CarMonthlyChargesFiltersScreen_elevation-22__yDNY7\",\"elevation-23\":\"CarMonthlyChargesFiltersScreen_elevation-23__1gIwP\",\"elevation-24\":\"CarMonthlyChargesFiltersScreen_elevation-24__1R8DM\",\"bold\":\"CarMonthlyChargesFiltersScreen_bold__1BDsG\",\"formContent\":\"CarMonthlyChargesFiltersScreen_formContent__3UiVP\",\"buttonsFooter\":\"CarMonthlyChargesFiltersScreen_buttonsFooter__2u_A8\",\"dateRangeCustom\":\"CarMonthlyChargesFiltersScreen_dateRangeCustom__PNZVr\",\"groupRefundTreated\":\"CarMonthlyChargesFiltersScreen_groupRefundTreated__sd_ga\",\"groupSpinner\":\"CarMonthlyChargesFiltersScreen_groupSpinner__2gvhi\",\"groupInputRefundTreated\":\"CarMonthlyChargesFiltersScreen_groupInputRefundTreated__1N5WG\",\"spinner\":\"CarMonthlyChargesFiltersScreen_spinner__31O-0\",\"placeholder\":\"CarMonthlyChargesFiltersScreen_placeholder__nboTd\",\"labelSpinner\":\"CarMonthlyChargesFiltersScreen_labelSpinner__2hSrf\",\"selected\":\"CarMonthlyChargesFiltersScreen_selected__LSROD\",\"notSelected\":\"CarMonthlyChargesFiltersScreen_notSelected__cl4Vz\",\"spinnerDetails\":\"CarMonthlyChargesFiltersScreen_spinnerDetails__P5j94\",\"divSpinner\":\"CarMonthlyChargesFiltersScreen_divSpinner__1jUkm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"GenericTypesList_elevation-1__3GxJf\",\"elevation-2\":\"GenericTypesList_elevation-2__1oP5s\",\"elevation-3\":\"GenericTypesList_elevation-3__18WGI\",\"elevation-4\":\"GenericTypesList_elevation-4__1i7Oq\",\"elevation-5\":\"GenericTypesList_elevation-5__Fk6i7\",\"elevation-6\":\"GenericTypesList_elevation-6__3-hv1\",\"elevation-7\":\"GenericTypesList_elevation-7__3OkD3\",\"elevation-8\":\"GenericTypesList_elevation-8__2TAiu\",\"elevation-9\":\"GenericTypesList_elevation-9__32wG1\",\"elevation-10\":\"GenericTypesList_elevation-10__34Uji\",\"elevation-11\":\"GenericTypesList_elevation-11__1SMKC\",\"elevation-12\":\"GenericTypesList_elevation-12__1YwkI\",\"elevation-13\":\"GenericTypesList_elevation-13__2Q8LC\",\"elevation-14\":\"GenericTypesList_elevation-14__1PmCr\",\"elevation-15\":\"GenericTypesList_elevation-15__UAz9p\",\"elevation-16\":\"GenericTypesList_elevation-16__3431m\",\"elevation-17\":\"GenericTypesList_elevation-17__3Xkdc\",\"elevation-18\":\"GenericTypesList_elevation-18__2wmI3\",\"elevation-19\":\"GenericTypesList_elevation-19__3BBgQ\",\"elevation-20\":\"GenericTypesList_elevation-20__zJYkb\",\"elevation-21\":\"GenericTypesList_elevation-21__1TsBN\",\"elevation-22\":\"GenericTypesList_elevation-22__3I8qo\",\"elevation-23\":\"GenericTypesList_elevation-23__30YJd\",\"elevation-24\":\"GenericTypesList_elevation-24__1W-Rm\",\"columnPlate\":\"GenericTypesList_columnPlate__3S3jb\",\"columnBrand\":\"GenericTypesList_columnBrand__1OJmd\",\"columnSpec\":\"GenericTypesList_columnSpec__3maE1\",\"tabHeader\":\"GenericTypesList_tabHeader__3inx7\",\"filtersPopoverContainer\":\"GenericTypesList_filtersPopoverContainer__966Jy\",\"counterList\":\"GenericTypesList_counterList__1CjJw\",\"counterNumber\":\"GenericTypesList_counterNumber__3Dh64\",\"rowFlex\":\"GenericTypesList_rowFlex__2hGEO\",\"contentImage\":\"GenericTypesList_contentImage___g3Hd\",\"img\":\"GenericTypesList_img__pF4Z1\",\"imageDescCell\":\"GenericTypesList_imageDescCell__Uz0A9\",\"descCell\":\"GenericTypesList_descCell__20o3P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NotificationsList_elevation-1__3LX3u\",\"elevation-2\":\"NotificationsList_elevation-2__2grnv\",\"elevation-3\":\"NotificationsList_elevation-3__rT6Um\",\"elevation-4\":\"NotificationsList_elevation-4__3iibX\",\"elevation-5\":\"NotificationsList_elevation-5__2GbP5\",\"elevation-6\":\"NotificationsList_elevation-6__3f_Vq\",\"elevation-7\":\"NotificationsList_elevation-7__3OtVg\",\"elevation-8\":\"NotificationsList_elevation-8__3MHcT\",\"elevation-9\":\"NotificationsList_elevation-9__21lAI\",\"elevation-10\":\"NotificationsList_elevation-10__1xiWs\",\"elevation-11\":\"NotificationsList_elevation-11__3Q1RE\",\"elevation-12\":\"NotificationsList_elevation-12__2WFXU\",\"elevation-13\":\"NotificationsList_elevation-13__2EpRo\",\"elevation-14\":\"NotificationsList_elevation-14__F9cxF\",\"elevation-15\":\"NotificationsList_elevation-15__3TKaW\",\"elevation-16\":\"NotificationsList_elevation-16__Wlzpq\",\"elevation-17\":\"NotificationsList_elevation-17__1o8F1\",\"elevation-18\":\"NotificationsList_elevation-18__1Arov\",\"elevation-19\":\"NotificationsList_elevation-19__29bRp\",\"elevation-20\":\"NotificationsList_elevation-20__V_gCI\",\"elevation-21\":\"NotificationsList_elevation-21__3OwAB\",\"elevation-22\":\"NotificationsList_elevation-22__lhkv0\",\"elevation-23\":\"NotificationsList_elevation-23__iO2RL\",\"elevation-24\":\"NotificationsList_elevation-24__Qk7IY\",\"container\":\"NotificationsList_container__2jnc0\",\"columnPlate\":\"NotificationsList_columnPlate__1Z9sH\",\"columnBrand\":\"NotificationsList_columnBrand__1J6ka\",\"columnSpec\":\"NotificationsList_columnSpec__3xEyB\",\"tabHeader\":\"NotificationsList_tabHeader__2-nNe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"RolesList_elevation-1__3hTY6\",\"elevation-2\":\"RolesList_elevation-2__31mGE\",\"elevation-3\":\"RolesList_elevation-3__3i8oQ\",\"elevation-4\":\"RolesList_elevation-4__3fe8v\",\"elevation-5\":\"RolesList_elevation-5__3CjWN\",\"elevation-6\":\"RolesList_elevation-6__3A7cb\",\"elevation-7\":\"RolesList_elevation-7__2_Ngt\",\"elevation-8\":\"RolesList_elevation-8__2wZa6\",\"elevation-9\":\"RolesList_elevation-9__2KXSJ\",\"elevation-10\":\"RolesList_elevation-10__2kqCL\",\"elevation-11\":\"RolesList_elevation-11__3-pQo\",\"elevation-12\":\"RolesList_elevation-12__tsG-3\",\"elevation-13\":\"RolesList_elevation-13__1NM_7\",\"elevation-14\":\"RolesList_elevation-14__Zxz5k\",\"elevation-15\":\"RolesList_elevation-15__gl12K\",\"elevation-16\":\"RolesList_elevation-16__1tuBC\",\"elevation-17\":\"RolesList_elevation-17__1gliE\",\"elevation-18\":\"RolesList_elevation-18__3eftS\",\"elevation-19\":\"RolesList_elevation-19__3oEKw\",\"elevation-20\":\"RolesList_elevation-20___DYT8\",\"elevation-21\":\"RolesList_elevation-21__lpR6g\",\"elevation-22\":\"RolesList_elevation-22__5JhDB\",\"elevation-23\":\"RolesList_elevation-23__Q9U2E\",\"elevation-24\":\"RolesList_elevation-24__HadCS\",\"container\":\"RolesList_container__3Tmzp\",\"tabHeader\":\"RolesList_tabHeader__1cU85\",\"bodyColumn\":\"RolesList_bodyColumn__25Bt4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DriverChargeTab_container__3Fylo\",\"buttonContainer\":\"DriverChargeTab_buttonContainer__vkKkM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DriverAccidentTab_container__zQKzm\",\"buttonContainer\":\"DriverAccidentTab_buttonContainer__KFu3p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DashboardScreen_elevation-1__2X9Q1\",\"elevation-2\":\"DashboardScreen_elevation-2__gEGTt\",\"elevation-3\":\"DashboardScreen_elevation-3__1ywMa\",\"elevation-4\":\"DashboardScreen_elevation-4__3uPrJ\",\"elevation-5\":\"DashboardScreen_elevation-5__2LwUU\",\"elevation-6\":\"DashboardScreen_elevation-6__2DxOk\",\"elevation-7\":\"DashboardScreen_elevation-7__3kJPU\",\"elevation-8\":\"DashboardScreen_elevation-8__1-AxF\",\"elevation-9\":\"DashboardScreen_elevation-9__1uSOg\",\"elevation-10\":\"DashboardScreen_elevation-10__1xy_Y\",\"elevation-11\":\"DashboardScreen_elevation-11__iT3Yw\",\"elevation-12\":\"DashboardScreen_elevation-12__1qY2P\",\"elevation-13\":\"DashboardScreen_elevation-13__2fHp3\",\"elevation-14\":\"DashboardScreen_elevation-14__2ZQGj\",\"elevation-15\":\"DashboardScreen_elevation-15__1ZfCV\",\"elevation-16\":\"DashboardScreen_elevation-16__2NUtZ\",\"elevation-17\":\"DashboardScreen_elevation-17__3kqym\",\"elevation-18\":\"DashboardScreen_elevation-18__16Unm\",\"elevation-19\":\"DashboardScreen_elevation-19__2KllW\",\"elevation-20\":\"DashboardScreen_elevation-20__1izCY\",\"elevation-21\":\"DashboardScreen_elevation-21__B4YnK\",\"elevation-22\":\"DashboardScreen_elevation-22__any4w\",\"elevation-23\":\"DashboardScreen_elevation-23__3RkVV\",\"elevation-24\":\"DashboardScreen_elevation-24__2Xfi1\",\"counters\":\"DashboardScreen_counters__3206H\",\"rowCounters\":\"DashboardScreen_rowCounters__17Odu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlarmsListScreen_elevation-1__2qE8r\",\"elevation-2\":\"AlarmsListScreen_elevation-2__TnHMd\",\"elevation-3\":\"AlarmsListScreen_elevation-3__3HMSh\",\"elevation-4\":\"AlarmsListScreen_elevation-4__2cQJH\",\"elevation-5\":\"AlarmsListScreen_elevation-5__NCoT-\",\"elevation-6\":\"AlarmsListScreen_elevation-6__xJctg\",\"elevation-7\":\"AlarmsListScreen_elevation-7__8lsIq\",\"elevation-8\":\"AlarmsListScreen_elevation-8__2jhHS\",\"elevation-9\":\"AlarmsListScreen_elevation-9__1dCjh\",\"elevation-10\":\"AlarmsListScreen_elevation-10__2pbFX\",\"elevation-11\":\"AlarmsListScreen_elevation-11__3tJ-E\",\"elevation-12\":\"AlarmsListScreen_elevation-12__3oFZP\",\"elevation-13\":\"AlarmsListScreen_elevation-13__2u_oX\",\"elevation-14\":\"AlarmsListScreen_elevation-14__vOAxD\",\"elevation-15\":\"AlarmsListScreen_elevation-15__MaZ9z\",\"elevation-16\":\"AlarmsListScreen_elevation-16__2_dV_\",\"elevation-17\":\"AlarmsListScreen_elevation-17__1b0-f\",\"elevation-18\":\"AlarmsListScreen_elevation-18__21hAa\",\"elevation-19\":\"AlarmsListScreen_elevation-19__1zxzu\",\"elevation-20\":\"AlarmsListScreen_elevation-20__1VLP7\",\"elevation-21\":\"AlarmsListScreen_elevation-21__21vEo\",\"elevation-22\":\"AlarmsListScreen_elevation-22__15ibg\",\"elevation-23\":\"AlarmsListScreen_elevation-23__27fOv\",\"elevation-24\":\"AlarmsListScreen_elevation-24__KTGDB\",\"box\":\"AlarmsListScreen_box__2HWaM\",\"counterList\":\"AlarmsListScreen_counterList__3jqj-\",\"counterNumber\":\"AlarmsListScreen_counterNumber__2cK32\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"TimePicker_elevation-1__4su9E\",\"elevation-2\":\"TimePicker_elevation-2__1xND-\",\"elevation-3\":\"TimePicker_elevation-3__2CDiE\",\"elevation-4\":\"TimePicker_elevation-4__2TDbr\",\"elevation-5\":\"TimePicker_elevation-5__1jH9y\",\"elevation-6\":\"TimePicker_elevation-6__2TYZp\",\"elevation-7\":\"TimePicker_elevation-7__2D8BW\",\"elevation-8\":\"TimePicker_elevation-8__4-3jV\",\"elevation-9\":\"TimePicker_elevation-9__3bKxr\",\"elevation-10\":\"TimePicker_elevation-10__2C9qo\",\"elevation-11\":\"TimePicker_elevation-11__frUpu\",\"elevation-12\":\"TimePicker_elevation-12__FwYw5\",\"elevation-13\":\"TimePicker_elevation-13__2BDLo\",\"elevation-14\":\"TimePicker_elevation-14__1BueL\",\"elevation-15\":\"TimePicker_elevation-15__3lcB7\",\"elevation-16\":\"TimePicker_elevation-16__yp8kI\",\"elevation-17\":\"TimePicker_elevation-17__3L9GV\",\"elevation-18\":\"TimePicker_elevation-18__10iwW\",\"elevation-19\":\"TimePicker_elevation-19__3v-ra\",\"elevation-20\":\"TimePicker_elevation-20__3Hl-U\",\"elevation-21\":\"TimePicker_elevation-21__1cZYd\",\"elevation-22\":\"TimePicker_elevation-22__3ahFw\",\"elevation-23\":\"TimePicker_elevation-23__2sWgr\",\"elevation-24\":\"TimePicker_elevation-24__1NwMu\",\"container\":\"TimePicker_container__2DzrC\",\"flex\":\"TimePicker_flex___Vftj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AccidentScreen_elevation-1__3Km3p\",\"elevation-2\":\"AccidentScreen_elevation-2__3etZz\",\"elevation-3\":\"AccidentScreen_elevation-3__AK3z9\",\"elevation-4\":\"AccidentScreen_elevation-4__1gxmI\",\"elevation-5\":\"AccidentScreen_elevation-5__RiXIM\",\"elevation-6\":\"AccidentScreen_elevation-6__1JpJL\",\"elevation-7\":\"AccidentScreen_elevation-7__3n5C9\",\"elevation-8\":\"AccidentScreen_elevation-8__vaKTX\",\"elevation-9\":\"AccidentScreen_elevation-9__5tg3x\",\"elevation-10\":\"AccidentScreen_elevation-10__22ors\",\"elevation-11\":\"AccidentScreen_elevation-11__2Y9TX\",\"elevation-12\":\"AccidentScreen_elevation-12__3lxHO\",\"elevation-13\":\"AccidentScreen_elevation-13__2lRlB\",\"elevation-14\":\"AccidentScreen_elevation-14__2g1IM\",\"elevation-15\":\"AccidentScreen_elevation-15__3l6iI\",\"elevation-16\":\"AccidentScreen_elevation-16__2tBBe\",\"elevation-17\":\"AccidentScreen_elevation-17__2lJdB\",\"elevation-18\":\"AccidentScreen_elevation-18__BpZUT\",\"elevation-19\":\"AccidentScreen_elevation-19__22I0N\",\"elevation-20\":\"AccidentScreen_elevation-20__3BglD\",\"elevation-21\":\"AccidentScreen_elevation-21__22WKg\",\"elevation-22\":\"AccidentScreen_elevation-22__309Jn\",\"elevation-23\":\"AccidentScreen_elevation-23__C3rxX\",\"elevation-24\":\"AccidentScreen_elevation-24__WdQQ_\",\"fullHeight\":\"AccidentScreen_fullHeight__2cjdf\",\"header\":\"AccidentScreen_header__2PPhc\",\"icon\":\"AccidentScreen_icon__vSP6z\",\"buttonsContainer\":\"AccidentScreen_buttonsContainer__2r8dk\",\"button\":\"AccidentScreen_button__2wA2u\",\"checkboxArea\":\"AccidentScreen_checkboxArea__3mgKq\",\"spinner\":\"AccidentScreen_spinner__1iJFO\",\"placeholder\":\"AccidentScreen_placeholder__11f1g\",\"labelSpinner\":\"AccidentScreen_labelSpinner__OSvTv\",\"selected\":\"AccidentScreen_selected__cA93Q\",\"notSelected\":\"AccidentScreen_notSelected__39Vn1\",\"spinnerDetails\":\"AccidentScreen_spinnerDetails__2mKTR\",\"label\":\"AccidentScreen_label__uG4Xu\",\"colLeftContent\":\"AccidentScreen_colLeftContent__1cc33\",\"colRightContent\":\"AccidentScreen_colRightContent__2HU_J\",\"subtitle\":\"AccidentScreen_subtitle__39B6s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AccountScreen_elevation-1__kL64F\",\"elevation-2\":\"AccountScreen_elevation-2__2sRzi\",\"elevation-3\":\"AccountScreen_elevation-3__LYqnH\",\"elevation-4\":\"AccountScreen_elevation-4__U5QcR\",\"elevation-5\":\"AccountScreen_elevation-5__2jX6V\",\"elevation-6\":\"AccountScreen_elevation-6__1K9f5\",\"elevation-7\":\"AccountScreen_elevation-7__2cJcv\",\"elevation-8\":\"AccountScreen_elevation-8__3-B_w\",\"elevation-9\":\"AccountScreen_elevation-9__21yeW\",\"elevation-10\":\"AccountScreen_elevation-10__1w8Xa\",\"elevation-11\":\"AccountScreen_elevation-11__3LrUs\",\"elevation-12\":\"AccountScreen_elevation-12__2CD0Y\",\"elevation-13\":\"AccountScreen_elevation-13__2s2Id\",\"elevation-14\":\"AccountScreen_elevation-14__2lKqB\",\"elevation-15\":\"AccountScreen_elevation-15__2_7Xn\",\"elevation-16\":\"AccountScreen_elevation-16__1uLzP\",\"elevation-17\":\"AccountScreen_elevation-17__2w-Ts\",\"elevation-18\":\"AccountScreen_elevation-18__2LSWA\",\"elevation-19\":\"AccountScreen_elevation-19__2usAm\",\"elevation-20\":\"AccountScreen_elevation-20__BSFFM\",\"elevation-21\":\"AccountScreen_elevation-21__2h-7C\",\"elevation-22\":\"AccountScreen_elevation-22__3ewv2\",\"elevation-23\":\"AccountScreen_elevation-23__2SR1K\",\"elevation-24\":\"AccountScreen_elevation-24__No9rk\",\"form\":\"AccountScreen_form__2P72i\",\"label\":\"AccountScreen_label__35J_X\",\"buttonContainer\":\"AccountScreen_buttonContainer__2GEn2\",\"roles\":\"AccountScreen_roles__1GK7F\",\"usernameCol\":\"AccountScreen_usernameCol__1HOyn\",\"avatarContainer\":\"AccountScreen_avatarContainer__3y1LA\",\"avatarChooser\":\"AccountScreen_avatarChooser__122ia\",\"avatarImage\":\"AccountScreen_avatarImage__2ED_y\",\"avatarFilesList\":\"AccountScreen_avatarFilesList__d6FjR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"NewAccountScreen_elevation-1__2zA_1\",\"elevation-2\":\"NewAccountScreen_elevation-2__1PzO1\",\"elevation-3\":\"NewAccountScreen_elevation-3__27Lk8\",\"elevation-4\":\"NewAccountScreen_elevation-4__oFgIO\",\"elevation-5\":\"NewAccountScreen_elevation-5__17d6_\",\"elevation-6\":\"NewAccountScreen_elevation-6__2EtY7\",\"elevation-7\":\"NewAccountScreen_elevation-7__2Dt0D\",\"elevation-8\":\"NewAccountScreen_elevation-8__AvKPl\",\"elevation-9\":\"NewAccountScreen_elevation-9__1O5ke\",\"elevation-10\":\"NewAccountScreen_elevation-10__3hWX-\",\"elevation-11\":\"NewAccountScreen_elevation-11__31AZH\",\"elevation-12\":\"NewAccountScreen_elevation-12__3gaYJ\",\"elevation-13\":\"NewAccountScreen_elevation-13__4Msg0\",\"elevation-14\":\"NewAccountScreen_elevation-14__2EEpI\",\"elevation-15\":\"NewAccountScreen_elevation-15__1mprz\",\"elevation-16\":\"NewAccountScreen_elevation-16__35bVR\",\"elevation-17\":\"NewAccountScreen_elevation-17__1En0L\",\"elevation-18\":\"NewAccountScreen_elevation-18__1HBLM\",\"elevation-19\":\"NewAccountScreen_elevation-19__2PKgF\",\"elevation-20\":\"NewAccountScreen_elevation-20__hcn2B\",\"elevation-21\":\"NewAccountScreen_elevation-21__1bixY\",\"elevation-22\":\"NewAccountScreen_elevation-22__3Daf_\",\"elevation-23\":\"NewAccountScreen_elevation-23__3QYFi\",\"elevation-24\":\"NewAccountScreen_elevation-24__12jYh\",\"header\":\"NewAccountScreen_header__3qeJo\",\"title\":\"NewAccountScreen_title__20UAK\",\"steps\":\"NewAccountScreen_steps__1J7Tu\",\"step\":\"NewAccountScreen_step__1LO-1\",\"active_step\":\"NewAccountScreen_active_step__3V6nE\",\"label\":\"NewAccountScreen_label__27_Ek\",\"alignRight\":\"NewAccountScreen_alignRight__z--YI\",\"buttons_container\":\"NewAccountScreen_buttons_container__1-Hzh\",\"button\":\"NewAccountScreen_button__4mNNl\",\"infoMessage\":\"NewAccountScreen_infoMessage__2OdHW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehiclesManagementScreen_elevation-1__3uir2\",\"elevation-2\":\"VehiclesManagementScreen_elevation-2__3K1Dz\",\"elevation-3\":\"VehiclesManagementScreen_elevation-3__1UTBz\",\"elevation-4\":\"VehiclesManagementScreen_elevation-4__3xIg0\",\"elevation-5\":\"VehiclesManagementScreen_elevation-5__3AZn0\",\"elevation-6\":\"VehiclesManagementScreen_elevation-6__3DfAh\",\"elevation-7\":\"VehiclesManagementScreen_elevation-7__2aMdC\",\"elevation-8\":\"VehiclesManagementScreen_elevation-8__3Ym6U\",\"elevation-9\":\"VehiclesManagementScreen_elevation-9__38GoC\",\"elevation-10\":\"VehiclesManagementScreen_elevation-10__2HmMu\",\"elevation-11\":\"VehiclesManagementScreen_elevation-11__24FI8\",\"elevation-12\":\"VehiclesManagementScreen_elevation-12__3PtCN\",\"elevation-13\":\"VehiclesManagementScreen_elevation-13__KEWR_\",\"elevation-14\":\"VehiclesManagementScreen_elevation-14__2qUaz\",\"elevation-15\":\"VehiclesManagementScreen_elevation-15__2889j\",\"elevation-16\":\"VehiclesManagementScreen_elevation-16__NF_v6\",\"elevation-17\":\"VehiclesManagementScreen_elevation-17__3F--E\",\"elevation-18\":\"VehiclesManagementScreen_elevation-18__2heRw\",\"elevation-19\":\"VehiclesManagementScreen_elevation-19__2hUIp\",\"elevation-20\":\"VehiclesManagementScreen_elevation-20__17WFI\",\"elevation-21\":\"VehiclesManagementScreen_elevation-21__1AMdh\",\"elevation-22\":\"VehiclesManagementScreen_elevation-22__1F0jl\",\"elevation-23\":\"VehiclesManagementScreen_elevation-23__2oNHH\",\"elevation-24\":\"VehiclesManagementScreen_elevation-24__1OoMF\",\"columnPlate\":\"VehiclesManagementScreen_columnPlate__29Fzs\",\"dropdownContainer\":\"VehiclesManagementScreen_dropdownContainer__KppG6\",\"columnBrand\":\"VehiclesManagementScreen_columnBrand__2lX95\",\"columnSpec\":\"VehiclesManagementScreen_columnSpec__2n6M4\",\"contentImage\":\"VehiclesManagementScreen_contentImage__1zvEa\",\"img\":\"VehiclesManagementScreen_img__3R8H_\",\"filtersPopoverContainer\":\"VehiclesManagementScreen_filtersPopoverContainer__1n977\",\"counterList\":\"VehiclesManagementScreen_counterList__3NyuU\",\"counter\":\"VehiclesManagementScreen_counter__312wu\",\"counterNumber\":\"VehiclesManagementScreen_counterNumber__3XTu5\",\"imageDescCell\":\"VehiclesManagementScreen_imageDescCell__DlZMD\",\"descCell\":\"VehiclesManagementScreen_descCell__1NoH8\",\"rowCounters\":\"VehiclesManagementScreen_rowCounters__1Ri8O\",\"cellContainer\":\"VehiclesManagementScreen_cellContainer__36Plv\",\"firstRow\":\"VehiclesManagementScreen_firstRow__3aUKh\",\"secondRow\":\"VehiclesManagementScreen_secondRow__3Kjsm\",\"smallCustomization\":\"VehiclesManagementScreen_smallCustomization__3GMeb\",\"kilometersContainer\":\"VehiclesManagementScreen_kilometersContainer__3nkwn\",\"imgKilometers\":\"VehiclesManagementScreen_imgKilometers__1WKcJ\",\"fontBold\":\"VehiclesManagementScreen_fontBold__2o_pz\",\"progressBar\":\"VehiclesManagementScreen_progressBar__3-jNP\",\"progressBarItem\":\"VehiclesManagementScreen_progressBarItem__3wKFb\",\"progressBarItemAbove\":\"VehiclesManagementScreen_progressBarItemAbove__w9ZF1\",\"progressBarItemBelow\":\"VehiclesManagementScreen_progressBarItemBelow__3kWZ2\",\"kmsRealAbove\":\"VehiclesManagementScreen_kmsRealAbove__1qWH-\",\"kmsRealBelow\":\"VehiclesManagementScreen_kmsRealBelow__23iL4\",\"exportButton\":\"VehiclesManagementScreen_exportButton__2vuXo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ToggleSwitch_elevation-1__CbO4a\",\"elevation-2\":\"ToggleSwitch_elevation-2__3DZls\",\"elevation-3\":\"ToggleSwitch_elevation-3__37VdK\",\"elevation-4\":\"ToggleSwitch_elevation-4__3WCqk\",\"elevation-5\":\"ToggleSwitch_elevation-5__1sjHB\",\"elevation-6\":\"ToggleSwitch_elevation-6__Usy6T\",\"elevation-7\":\"ToggleSwitch_elevation-7__4VrEz\",\"elevation-8\":\"ToggleSwitch_elevation-8__2P3jT\",\"elevation-9\":\"ToggleSwitch_elevation-9__3vPfY\",\"elevation-10\":\"ToggleSwitch_elevation-10__HTyD8\",\"elevation-11\":\"ToggleSwitch_elevation-11__1-4nu\",\"elevation-12\":\"ToggleSwitch_elevation-12__2__6V\",\"elevation-13\":\"ToggleSwitch_elevation-13__37MMs\",\"elevation-14\":\"ToggleSwitch_elevation-14__1Fjhl\",\"elevation-15\":\"ToggleSwitch_elevation-15__1dJ4E\",\"elevation-16\":\"ToggleSwitch_elevation-16__1Vqs1\",\"elevation-17\":\"ToggleSwitch_elevation-17__2CyEV\",\"elevation-18\":\"ToggleSwitch_elevation-18__3s0Cr\",\"elevation-19\":\"ToggleSwitch_elevation-19__1sZdY\",\"elevation-20\":\"ToggleSwitch_elevation-20__2WU7J\",\"elevation-21\":\"ToggleSwitch_elevation-21__2g0KZ\",\"elevation-22\":\"ToggleSwitch_elevation-22__d0JFh\",\"elevation-23\":\"ToggleSwitch_elevation-23__2lzaL\",\"elevation-24\":\"ToggleSwitch_elevation-24__1UlAs\",\"toggleSwitch\":\"ToggleSwitch_toggleSwitch__1hEFl\",\"switch\":\"ToggleSwitch_switch__SgsBf\",\"enabled\":\"ToggleSwitch_enabled__348V1\",\"disabled\":\"ToggleSwitch_disabled__2Ljuh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MaintenanceContractsScreen_elevation-1__2xha2\",\"elevation-2\":\"MaintenanceContractsScreen_elevation-2__1vXfF\",\"elevation-3\":\"MaintenanceContractsScreen_elevation-3__2G_a0\",\"elevation-4\":\"MaintenanceContractsScreen_elevation-4__3fwdN\",\"elevation-5\":\"MaintenanceContractsScreen_elevation-5__3aSg5\",\"elevation-6\":\"MaintenanceContractsScreen_elevation-6__3BGCp\",\"elevation-7\":\"MaintenanceContractsScreen_elevation-7__2f9yU\",\"elevation-8\":\"MaintenanceContractsScreen_elevation-8__1vRu5\",\"elevation-9\":\"MaintenanceContractsScreen_elevation-9__1YmP0\",\"elevation-10\":\"MaintenanceContractsScreen_elevation-10__3XIeN\",\"elevation-11\":\"MaintenanceContractsScreen_elevation-11__2uPWR\",\"elevation-12\":\"MaintenanceContractsScreen_elevation-12__2qVed\",\"elevation-13\":\"MaintenanceContractsScreen_elevation-13__2Y-La\",\"elevation-14\":\"MaintenanceContractsScreen_elevation-14__2TA--\",\"elevation-15\":\"MaintenanceContractsScreen_elevation-15__jlxxR\",\"elevation-16\":\"MaintenanceContractsScreen_elevation-16__1SO7s\",\"elevation-17\":\"MaintenanceContractsScreen_elevation-17__3pg8t\",\"elevation-18\":\"MaintenanceContractsScreen_elevation-18__2SjAP\",\"elevation-19\":\"MaintenanceContractsScreen_elevation-19__BAt5B\",\"elevation-20\":\"MaintenanceContractsScreen_elevation-20__8PbUl\",\"elevation-21\":\"MaintenanceContractsScreen_elevation-21__1MUby\",\"elevation-22\":\"MaintenanceContractsScreen_elevation-22__1bEyU\",\"elevation-23\":\"MaintenanceContractsScreen_elevation-23__2P39i\",\"elevation-24\":\"MaintenanceContractsScreen_elevation-24__2qXDt\",\"header\":\"MaintenanceContractsScreen_header__aaWWE\",\"icon\":\"MaintenanceContractsScreen_icon__3ooC1\",\"colRightContent\":\"MaintenanceContractsScreen_colRightContent__1uGX4\",\"subtitle\":\"MaintenanceContractsScreen_subtitle__1Rdl3\",\"label\":\"MaintenanceContractsScreen_label__3QBgI\",\"content\":\"MaintenanceContractsScreen_content__2lpu4\",\"selectOption\":\"MaintenanceContractsScreen_selectOption__g6Wb7\",\"placeholder\":\"MaintenanceContractsScreen_placeholder__2q6X_\",\"selected\":\"MaintenanceContractsScreen_selected__2Jphv\",\"spinner\":\"MaintenanceContractsScreen_spinner__fNnYM\",\"labelSpinner\":\"MaintenanceContractsScreen_labelSpinner__1yBQP\",\"notSelected\":\"MaintenanceContractsScreen_notSelected__1twYs\",\"spinnerDetails\":\"MaintenanceContractsScreen_spinnerDetails__1xDmf\",\"buttonsContainer\":\"MaintenanceContractsScreen_buttonsContainer__1_4fR\",\"button\":\"MaintenanceContractsScreen_button__3LFvj\",\"groupInputsWarranty\":\"MaintenanceContractsScreen_groupInputsWarranty__2Ze27\",\"groupInputWarranty\":\"MaintenanceContractsScreen_groupInputWarranty__2SRV6\",\"marginTopSmallScreens\":\"MaintenanceContractsScreen_marginTopSmallScreens__3MyYe\",\"groupInputSeparatorWarranty\":\"MaintenanceContractsScreen_groupInputSeparatorWarranty__103vz\",\"groupSpinner\":\"MaintenanceContractsScreen_groupSpinner__1U3cm\",\"checkboxArea\":\"MaintenanceContractsScreen_checkboxArea__3ah5q\",\"addIcon\":\"MaintenanceContractsScreen_addIcon__SzIXu\",\"fileArea\":\"MaintenanceContractsScreen_fileArea__1w4lf\",\"dateRangeCustom\":\"MaintenanceContractsScreen_dateRangeCustom__1Tzol\",\"messageAlert\":\"MaintenanceContractsScreen_messageAlert__Wvwhu\",\"containerSmallButton\":\"MaintenanceContractsScreen_containerSmallButton__1wFHX\",\"iconAdd\":\"MaintenanceContractsScreen_iconAdd__1yIWZ\",\"rowAlerts\":\"MaintenanceContractsScreen_rowAlerts__1Byzp\",\"removeIcon\":\"MaintenanceContractsScreen_removeIcon__3HtN9\",\"noInfoText\":\"MaintenanceContractsScreen_noInfoText__1Ey9L\",\"formItem\":\"MaintenanceContractsScreen_formItem__1Mkc-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InsuranceContractsScreen_elevation-1__36Mi8\",\"elevation-2\":\"InsuranceContractsScreen_elevation-2__ce2bT\",\"elevation-3\":\"InsuranceContractsScreen_elevation-3__2bRCk\",\"elevation-4\":\"InsuranceContractsScreen_elevation-4__1xMyX\",\"elevation-5\":\"InsuranceContractsScreen_elevation-5__g04O6\",\"elevation-6\":\"InsuranceContractsScreen_elevation-6__2JKA7\",\"elevation-7\":\"InsuranceContractsScreen_elevation-7__3ufjI\",\"elevation-8\":\"InsuranceContractsScreen_elevation-8__2PMXl\",\"elevation-9\":\"InsuranceContractsScreen_elevation-9__1QIuu\",\"elevation-10\":\"InsuranceContractsScreen_elevation-10__Yzbvy\",\"elevation-11\":\"InsuranceContractsScreen_elevation-11__11QCU\",\"elevation-12\":\"InsuranceContractsScreen_elevation-12__2QsFT\",\"elevation-13\":\"InsuranceContractsScreen_elevation-13__2gzMs\",\"elevation-14\":\"InsuranceContractsScreen_elevation-14__28wQ-\",\"elevation-15\":\"InsuranceContractsScreen_elevation-15__1VuiA\",\"elevation-16\":\"InsuranceContractsScreen_elevation-16__1wxWc\",\"elevation-17\":\"InsuranceContractsScreen_elevation-17__2SJo8\",\"elevation-18\":\"InsuranceContractsScreen_elevation-18__1Ffmw\",\"elevation-19\":\"InsuranceContractsScreen_elevation-19__3wPPx\",\"elevation-20\":\"InsuranceContractsScreen_elevation-20__SEQRY\",\"elevation-21\":\"InsuranceContractsScreen_elevation-21__3CKw9\",\"elevation-22\":\"InsuranceContractsScreen_elevation-22__2ctb5\",\"elevation-23\":\"InsuranceContractsScreen_elevation-23__1USf4\",\"elevation-24\":\"InsuranceContractsScreen_elevation-24__3BzqO\",\"header\":\"InsuranceContractsScreen_header__OUcdS\",\"icon\":\"InsuranceContractsScreen_icon__1V94p\",\"colRightContent\":\"InsuranceContractsScreen_colRightContent__1a5Nb\",\"subtitle\":\"InsuranceContractsScreen_subtitle__2mpe-\",\"label\":\"InsuranceContractsScreen_label__DXNer\",\"content\":\"InsuranceContractsScreen_content__3pgEG\",\"selectOption\":\"InsuranceContractsScreen_selectOption__1UhBU\",\"placeholder\":\"InsuranceContractsScreen_placeholder__3PzXA\",\"selected\":\"InsuranceContractsScreen_selected__3kSvz\",\"spinner\":\"InsuranceContractsScreen_spinner__2KBdq\",\"labelSpinner\":\"InsuranceContractsScreen_labelSpinner__vhFx8\",\"notSelected\":\"InsuranceContractsScreen_notSelected___yzhW\",\"spinnerDetails\":\"InsuranceContractsScreen_spinnerDetails__1ehQL\",\"buttonsContainer\":\"InsuranceContractsScreen_buttonsContainer__2VGgE\",\"button\":\"InsuranceContractsScreen_button__2Krr-\",\"groupInputsWarranty\":\"InsuranceContractsScreen_groupInputsWarranty__KAHey\",\"groupSpinner\":\"InsuranceContractsScreen_groupSpinner__3Jv_Y\",\"checkboxArea\":\"InsuranceContractsScreen_checkboxArea__3QQ2e\",\"addIcon\":\"InsuranceContractsScreen_addIcon__2BIrV\",\"fileArea\":\"InsuranceContractsScreen_fileArea__3rZWc\",\"dateRangeCustom\":\"InsuranceContractsScreen_dateRangeCustom__2aV-8\",\"messageAlert\":\"InsuranceContractsScreen_messageAlert__i6_G2\",\"containerSmallButton\":\"InsuranceContractsScreen_containerSmallButton__kdG-k\",\"iconAdd\":\"InsuranceContractsScreen_iconAdd__3f6wG\",\"rowAlerts\":\"InsuranceContractsScreen_rowAlerts__11dh4\",\"removeIcon\":\"InsuranceContractsScreen_removeIcon__FyT01\",\"noInfoText\":\"InsuranceContractsScreen_noInfoText__2zJyX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MaintenanceListTable_elevation-1__356KD\",\"elevation-2\":\"MaintenanceListTable_elevation-2__2UoBt\",\"elevation-3\":\"MaintenanceListTable_elevation-3__1MO1d\",\"elevation-4\":\"MaintenanceListTable_elevation-4__qnFfr\",\"elevation-5\":\"MaintenanceListTable_elevation-5__TzwfG\",\"elevation-6\":\"MaintenanceListTable_elevation-6__JRvEZ\",\"elevation-7\":\"MaintenanceListTable_elevation-7__3buc4\",\"elevation-8\":\"MaintenanceListTable_elevation-8__3jWYd\",\"elevation-9\":\"MaintenanceListTable_elevation-9__20vVL\",\"elevation-10\":\"MaintenanceListTable_elevation-10__1ZC33\",\"elevation-11\":\"MaintenanceListTable_elevation-11__3tgxd\",\"elevation-12\":\"MaintenanceListTable_elevation-12__wH7Ow\",\"elevation-13\":\"MaintenanceListTable_elevation-13__30bPU\",\"elevation-14\":\"MaintenanceListTable_elevation-14__1BL5z\",\"elevation-15\":\"MaintenanceListTable_elevation-15__2vYgd\",\"elevation-16\":\"MaintenanceListTable_elevation-16__3QeFs\",\"elevation-17\":\"MaintenanceListTable_elevation-17__3raVp\",\"elevation-18\":\"MaintenanceListTable_elevation-18__1at44\",\"elevation-19\":\"MaintenanceListTable_elevation-19__2ITJl\",\"elevation-20\":\"MaintenanceListTable_elevation-20__3KauO\",\"elevation-21\":\"MaintenanceListTable_elevation-21__QcuUb\",\"elevation-22\":\"MaintenanceListTable_elevation-22__9TDYd\",\"elevation-23\":\"MaintenanceListTable_elevation-23__3tp5C\",\"elevation-24\":\"MaintenanceListTable_elevation-24__3GNs6\",\"tabHeader\":\"MaintenanceListTable_tabHeader__Ue07R\",\"rowFlex\":\"MaintenanceListTable_rowFlex__3cZR8\",\"flexColumn\":\"MaintenanceListTable_flexColumn__2d2Xu\",\"keepText\":\"MaintenanceListTable_keepText__DPEDU\",\"button\":\"MaintenanceListTable_button__PJqUw\",\"filtersPopoverContainer\":\"MaintenanceListTable_filtersPopoverContainer__10qia\",\"divSVG\":\"MaintenanceListTable_divSVG__3j6hi\",\"responsible\":\"MaintenanceListTable_responsible__1vqOJ\",\"icon\":\"MaintenanceListTable_icon__wgmMn\",\"secondRow\":\"MaintenanceListTable_secondRow__Ku_uE\",\"costColumn\":\"MaintenanceListTable_costColumn__2SVsK\",\"counterList\":\"MaintenanceListTable_counterList__1z4We\",\"counter\":\"MaintenanceListTable_counter__232vl\",\"counterNumber\":\"MaintenanceListTable_counterNumber__3awPc\",\"imageDescCell\":\"MaintenanceListTable_imageDescCell__1GeZe\",\"descCell\":\"MaintenanceListTable_descCell__33nYv\",\"contentImage\":\"MaintenanceListTable_contentImage__2xtrR\",\"img\":\"MaintenanceListTable_img__3O8EG\",\"columnPlate\":\"MaintenanceListTable_columnPlate__lEgvY\",\"columnBrand\":\"MaintenanceListTable_columnBrand__1bScG\",\"columnSpec\":\"MaintenanceListTable_columnSpec__1uzvH\",\"primaryLight\":\"MaintenanceListTable_primaryLight__3LHsF\",\"primaryLightInverted\":\"MaintenanceListTable_primaryLightInverted__2uSOz\",\"primaryDark\":\"MaintenanceListTable_primaryDark__Qbraq\",\"danger\":\"MaintenanceListTable_danger__1RWhm\",\"success\":\"MaintenanceListTable_success__3uWbm\",\"warning\":\"MaintenanceListTable_warning__1MYsS\",\"inactive\":\"MaintenanceListTable_inactive__y1X5V\",\"default\":\"MaintenanceListTable_default__1FoyE\",\"hideText\":\"MaintenanceListTable_hideText__3Z9qW\",\"cellContainer\":\"MaintenanceListTable_cellContainer__12lce\",\"firstRow\":\"MaintenanceListTable_firstRow__aT7tB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CompanyScreen_elevation-1__KvpaC\",\"elevation-2\":\"CompanyScreen_elevation-2__3gval\",\"elevation-3\":\"CompanyScreen_elevation-3__1ScoS\",\"elevation-4\":\"CompanyScreen_elevation-4__3w0bt\",\"elevation-5\":\"CompanyScreen_elevation-5__-kXHx\",\"elevation-6\":\"CompanyScreen_elevation-6__wd7gg\",\"elevation-7\":\"CompanyScreen_elevation-7__2_xGI\",\"elevation-8\":\"CompanyScreen_elevation-8__U-xz2\",\"elevation-9\":\"CompanyScreen_elevation-9__370ip\",\"elevation-10\":\"CompanyScreen_elevation-10__vk_xw\",\"elevation-11\":\"CompanyScreen_elevation-11__3inGn\",\"elevation-12\":\"CompanyScreen_elevation-12__2wWZ6\",\"elevation-13\":\"CompanyScreen_elevation-13__1lSr-\",\"elevation-14\":\"CompanyScreen_elevation-14__2IvCH\",\"elevation-15\":\"CompanyScreen_elevation-15__35Mm1\",\"elevation-16\":\"CompanyScreen_elevation-16__29lmq\",\"elevation-17\":\"CompanyScreen_elevation-17__3mV4M\",\"elevation-18\":\"CompanyScreen_elevation-18__1RYkr\",\"elevation-19\":\"CompanyScreen_elevation-19__2Kjaf\",\"elevation-20\":\"CompanyScreen_elevation-20__2OL0t\",\"elevation-21\":\"CompanyScreen_elevation-21__3ICnU\",\"elevation-22\":\"CompanyScreen_elevation-22__qDiRD\",\"elevation-23\":\"CompanyScreen_elevation-23__2GCdy\",\"elevation-24\":\"CompanyScreen_elevation-24__3IudZ\",\"box\":\"CompanyScreen_box__2AI7S\",\"header\":\"CompanyScreen_header__29K8z\",\"icon\":\"CompanyScreen_icon__1NBtj\",\"form\":\"CompanyScreen_form__1_Nlz\",\"label\":\"CompanyScreen_label__L8U6t\",\"image\":\"CompanyScreen_image__37e7i\",\"contentImage\":\"CompanyScreen_contentImage__23Ogj\",\"img\":\"CompanyScreen_img__10ICH\",\"content\":\"CompanyScreen_content__2tL99\",\"buttonsContainer\":\"CompanyScreen_buttonsContainer__37NGn\",\"button\":\"CompanyScreen_button__2Qy9W\",\"headerPlans\":\"CompanyScreen_headerPlans__359th\",\"headerText\":\"CompanyScreen_headerText__2cKNN\",\"headerButton\":\"CompanyScreen_headerButton__3mk8s\",\"headerButtonIcon\":\"CompanyScreen_headerButtonIcon__21pjn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"MediaSelector_elevation-1__1T2Ld\",\"elevation-2\":\"MediaSelector_elevation-2__312TJ\",\"elevation-3\":\"MediaSelector_elevation-3__Szm3i\",\"elevation-4\":\"MediaSelector_elevation-4__1dH-n\",\"elevation-5\":\"MediaSelector_elevation-5__3XiKs\",\"elevation-6\":\"MediaSelector_elevation-6__36P5k\",\"elevation-7\":\"MediaSelector_elevation-7__3qyDr\",\"elevation-8\":\"MediaSelector_elevation-8__2FRuq\",\"elevation-9\":\"MediaSelector_elevation-9__1RSft\",\"elevation-10\":\"MediaSelector_elevation-10__3NOYt\",\"elevation-11\":\"MediaSelector_elevation-11__3_4Vf\",\"elevation-12\":\"MediaSelector_elevation-12__1zLG-\",\"elevation-13\":\"MediaSelector_elevation-13__3y1sk\",\"elevation-14\":\"MediaSelector_elevation-14__1Ynm3\",\"elevation-15\":\"MediaSelector_elevation-15__3Lpiz\",\"elevation-16\":\"MediaSelector_elevation-16__3Z3A_\",\"elevation-17\":\"MediaSelector_elevation-17__2RBzu\",\"elevation-18\":\"MediaSelector_elevation-18__3AwaL\",\"elevation-19\":\"MediaSelector_elevation-19__gWS68\",\"elevation-20\":\"MediaSelector_elevation-20__2hxgL\",\"elevation-21\":\"MediaSelector_elevation-21__2J2Qz\",\"elevation-22\":\"MediaSelector_elevation-22__7eHmL\",\"elevation-23\":\"MediaSelector_elevation-23__2d3DQ\",\"elevation-24\":\"MediaSelector_elevation-24__2L-9W\",\"container\":\"MediaSelector_container__3qYTO\",\"button\":\"MediaSelector_button__ULr5R\",\"disabled\":\"MediaSelector_disabled__2Obav\",\"primary\":\"MediaSelector_primary__2cUnI\",\"sizeNormal\":\"MediaSelector_sizeNormal__3TbSf\",\"sizeSmall\":\"MediaSelector_sizeSmall__2Ad4E\",\"sizeExtraSmall\":\"MediaSelector_sizeExtraSmall__1tqPY\",\"buttonIcon\":\"MediaSelector_buttonIcon__2OA60\",\"primaryAlt\":\"MediaSelector_primaryAlt__cJe1f\",\"danger\":\"MediaSelector_danger__2XGdu\",\"success\":\"MediaSelector_success__D3glP\",\"secondary\":\"MediaSelector_secondary__IqwBC\",\"popover\":\"MediaSelector_popover__3mvgh\",\"secondaryDanger\":\"MediaSelector_secondaryDanger__2srFD\",\"scrollable\":\"MediaSelector_scrollable__3h69L\",\"mediasList\":\"MediaSelector_mediasList__3NwFs\",\"addMedia\":\"MediaSelector_addMedia__2mi7J\",\"addMediaCar\":\"MediaSelector_addMediaCar__1kjnR\",\"addMediaUser\":\"MediaSelector_addMediaUser__3-niO\",\"imagePreviewContainer\":\"MediaSelector_imagePreviewContainer__2u4hP\",\"profilePicture\":\"MediaSelector_profilePicture__6rY3x\",\"removeItem\":\"MediaSelector_removeItem__1ryXP\",\"imagePreview\":\"MediaSelector_imagePreview__20byh\",\"imagePreviewMini\":\"MediaSelector_imagePreviewMini__2g4lO\",\"editorContainer\":\"MediaSelector_editorContainer__2XATc\",\"contentImage\":\"MediaSelector_contentImage__1RoWc\",\"defaultImg\":\"MediaSelector_defaultImg__Y5Qn2\",\"img\":\"MediaSelector_img__2eVXQ\",\"scrollableWithLabel\":\"MediaSelector_scrollableWithLabel__2gmFk\",\"mediasListWithLabel\":\"MediaSelector_mediasListWithLabel__28ARG\",\"mediasListCarWithLabel\":\"MediaSelector_mediasListCarWithLabel__WJW2T\",\"label\":\"MediaSelector_label__PN3gD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoadingProvider_container__3dOoL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"InputGroup_elevation-1__3qsUH\",\"elevation-2\":\"InputGroup_elevation-2__3YSof\",\"elevation-3\":\"InputGroup_elevation-3__2v4kT\",\"elevation-4\":\"InputGroup_elevation-4__f-Qhj\",\"elevation-5\":\"InputGroup_elevation-5__198nM\",\"elevation-6\":\"InputGroup_elevation-6__3C6ea\",\"elevation-7\":\"InputGroup_elevation-7__3GYRD\",\"elevation-8\":\"InputGroup_elevation-8__2xiMF\",\"elevation-9\":\"InputGroup_elevation-9__36mlH\",\"elevation-10\":\"InputGroup_elevation-10__2rsKx\",\"elevation-11\":\"InputGroup_elevation-11__2PZ5W\",\"elevation-12\":\"InputGroup_elevation-12__1u9vB\",\"elevation-13\":\"InputGroup_elevation-13__3Rg-m\",\"elevation-14\":\"InputGroup_elevation-14__3cc3t\",\"elevation-15\":\"InputGroup_elevation-15__2IObh\",\"elevation-16\":\"InputGroup_elevation-16__3f5lh\",\"elevation-17\":\"InputGroup_elevation-17__fGMk7\",\"elevation-18\":\"InputGroup_elevation-18__3tsuP\",\"elevation-19\":\"InputGroup_elevation-19__22x2M\",\"elevation-20\":\"InputGroup_elevation-20__2x6xW\",\"elevation-21\":\"InputGroup_elevation-21__3Gg6O\",\"elevation-22\":\"InputGroup_elevation-22__15gV9\",\"elevation-23\":\"InputGroup_elevation-23__1bIPO\",\"elevation-24\":\"InputGroup_elevation-24__dnEMQ\",\"inputGroup\":\"InputGroup_inputGroup__UiUdG\",\"input\":\"InputGroup_input__3KxiT\",\"placeholder\":\"InputGroup_placeholder__2UV_1\",\"inputGroupAppend\":\"InputGroup_inputGroupAppend__uYawJ\",\"inputGroupText\":\"InputGroup_inputGroupText__Afsew\",\"noBorderRadiusLeft\":\"InputGroup_noBorderRadiusLeft__3W0uH\",\"disabled\":\"InputGroup_disabled__2snMI\",\"maxLength\":\"InputGroup_maxLength__3c1zl\",\"noBorderRadiusRight\":\"InputGroup_noBorderRadiusRight__16ei1\",\"nameText\":\"InputGroup_nameText__Tu4EI\",\"inputMoney\":\"InputGroup_inputMoney__34Wy1\",\"cursorPointer\":\"InputGroup_cursorPointer__2iBOY\",\"imageIconClose\":\"InputGroup_imageIconClose__2SY6w\",\"inputWithButton\":\"InputGroup_inputWithButton__1j9AH\",\"clearButton\":\"InputGroup_clearButton__3TAXD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ScreenHeaderButton_elevation-1__3Rb35\",\"elevation-2\":\"ScreenHeaderButton_elevation-2__27e-g\",\"elevation-3\":\"ScreenHeaderButton_elevation-3__2myMJ\",\"elevation-4\":\"ScreenHeaderButton_elevation-4__2HDQt\",\"elevation-5\":\"ScreenHeaderButton_elevation-5__3Q6IL\",\"elevation-6\":\"ScreenHeaderButton_elevation-6__3U6sY\",\"elevation-7\":\"ScreenHeaderButton_elevation-7__2xrKE\",\"elevation-8\":\"ScreenHeaderButton_elevation-8__6YVsU\",\"elevation-9\":\"ScreenHeaderButton_elevation-9__1WQ4l\",\"elevation-10\":\"ScreenHeaderButton_elevation-10__207Uy\",\"elevation-11\":\"ScreenHeaderButton_elevation-11__3W6o5\",\"elevation-12\":\"ScreenHeaderButton_elevation-12__2QlvU\",\"elevation-13\":\"ScreenHeaderButton_elevation-13__2Er_z\",\"elevation-14\":\"ScreenHeaderButton_elevation-14__moPQg\",\"elevation-15\":\"ScreenHeaderButton_elevation-15__1WReG\",\"elevation-16\":\"ScreenHeaderButton_elevation-16__ZJU0W\",\"elevation-17\":\"ScreenHeaderButton_elevation-17__1ep33\",\"elevation-18\":\"ScreenHeaderButton_elevation-18__1eEK5\",\"elevation-19\":\"ScreenHeaderButton_elevation-19__2jLYl\",\"elevation-20\":\"ScreenHeaderButton_elevation-20__yX-ze\",\"elevation-21\":\"ScreenHeaderButton_elevation-21__106bl\",\"elevation-22\":\"ScreenHeaderButton_elevation-22__1NnEC\",\"elevation-23\":\"ScreenHeaderButton_elevation-23__2u9n_\",\"elevation-24\":\"ScreenHeaderButton_elevation-24__SBmH8\",\"button\":\"ScreenHeaderButton_button__3akC_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Avatar_elevation-1__YyHZM\",\"elevation-2\":\"Avatar_elevation-2__2dOtK\",\"elevation-3\":\"Avatar_elevation-3__1olBt\",\"elevation-4\":\"Avatar_elevation-4__2O1Af\",\"elevation-5\":\"Avatar_elevation-5__25ynK\",\"elevation-6\":\"Avatar_elevation-6__QNdkJ\",\"elevation-7\":\"Avatar_elevation-7__BB0PB\",\"elevation-8\":\"Avatar_elevation-8__3XX2S\",\"elevation-9\":\"Avatar_elevation-9__1tmps\",\"elevation-10\":\"Avatar_elevation-10__3ilHo\",\"elevation-11\":\"Avatar_elevation-11__1qWiU\",\"elevation-12\":\"Avatar_elevation-12___9P1K\",\"elevation-13\":\"Avatar_elevation-13__1aPm5\",\"elevation-14\":\"Avatar_elevation-14__Jnk4a\",\"elevation-15\":\"Avatar_elevation-15__178TO\",\"elevation-16\":\"Avatar_elevation-16___jajm\",\"elevation-17\":\"Avatar_elevation-17__5Uiqk\",\"elevation-18\":\"Avatar_elevation-18__3_7qj\",\"elevation-19\":\"Avatar_elevation-19__1unjR\",\"elevation-20\":\"Avatar_elevation-20__35QUN\",\"elevation-21\":\"Avatar_elevation-21__ehAHq\",\"elevation-22\":\"Avatar_elevation-22__2EGam\",\"elevation-23\":\"Avatar_elevation-23__FZC5Y\",\"elevation-24\":\"Avatar_elevation-24__1x54Y\",\"container\":\"Avatar_container__Rtfih\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Label_elevation-1__2jQSM\",\"elevation-2\":\"Label_elevation-2__1cUsa\",\"elevation-3\":\"Label_elevation-3__1ysMA\",\"elevation-4\":\"Label_elevation-4__2Kze9\",\"elevation-5\":\"Label_elevation-5__1vjec\",\"elevation-6\":\"Label_elevation-6__25UdL\",\"elevation-7\":\"Label_elevation-7__1iO7W\",\"elevation-8\":\"Label_elevation-8__3mEvH\",\"elevation-9\":\"Label_elevation-9__v9zVf\",\"elevation-10\":\"Label_elevation-10__2Ls-L\",\"elevation-11\":\"Label_elevation-11__BzGnU\",\"elevation-12\":\"Label_elevation-12__2LtdR\",\"elevation-13\":\"Label_elevation-13__23aKE\",\"elevation-14\":\"Label_elevation-14__31c0L\",\"elevation-15\":\"Label_elevation-15__1bSyU\",\"elevation-16\":\"Label_elevation-16__15Byi\",\"elevation-17\":\"Label_elevation-17__WXoJx\",\"elevation-18\":\"Label_elevation-18__1GuEp\",\"elevation-19\":\"Label_elevation-19__3pvb7\",\"elevation-20\":\"Label_elevation-20__275Yt\",\"elevation-21\":\"Label_elevation-21__1vrPG\",\"elevation-22\":\"Label_elevation-22__2M0oK\",\"elevation-23\":\"Label_elevation-23__4Wz9b\",\"elevation-24\":\"Label_elevation-24__3Fl5B\",\"label\":\"Label_label__118rQ\",\"requiredField\":\"Label_requiredField__2iywk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DriversScreen_elevation-1__2DsyL\",\"elevation-2\":\"DriversScreen_elevation-2__hT9xv\",\"elevation-3\":\"DriversScreen_elevation-3__3GcRx\",\"elevation-4\":\"DriversScreen_elevation-4__wET2h\",\"elevation-5\":\"DriversScreen_elevation-5__3bDnO\",\"elevation-6\":\"DriversScreen_elevation-6__1YEgM\",\"elevation-7\":\"DriversScreen_elevation-7__wZhz1\",\"elevation-8\":\"DriversScreen_elevation-8__31AHI\",\"elevation-9\":\"DriversScreen_elevation-9__8RGT7\",\"elevation-10\":\"DriversScreen_elevation-10__R-qza\",\"elevation-11\":\"DriversScreen_elevation-11__27pSJ\",\"elevation-12\":\"DriversScreen_elevation-12__1KRYE\",\"elevation-13\":\"DriversScreen_elevation-13__kuLO6\",\"elevation-14\":\"DriversScreen_elevation-14__kzYBH\",\"elevation-15\":\"DriversScreen_elevation-15__Qqn3L\",\"elevation-16\":\"DriversScreen_elevation-16__IvwFj\",\"elevation-17\":\"DriversScreen_elevation-17__Lu_J8\",\"elevation-18\":\"DriversScreen_elevation-18__1O9wY\",\"elevation-19\":\"DriversScreen_elevation-19__33FbU\",\"elevation-20\":\"DriversScreen_elevation-20__3cXYM\",\"elevation-21\":\"DriversScreen_elevation-21__2nCSM\",\"elevation-22\":\"DriversScreen_elevation-22__2wcwK\",\"elevation-23\":\"DriversScreen_elevation-23__rzeYr\",\"elevation-24\":\"DriversScreen_elevation-24__nuiDM\",\"box\":\"DriversScreen_box__2vtXe\",\"firstRow\":\"DriversScreen_firstRow__3v0GE\",\"secondRow\":\"DriversScreen_secondRow__2VXP5\",\"columnSpec\":\"DriversScreen_columnSpec__1dnTK\",\"contentImage\":\"DriversScreen_contentImage__23nSC\",\"img\":\"DriversScreen_img__36Ca4\",\"filtersPopoverContainer\":\"DriversScreen_filtersPopoverContainer__opRZ5\",\"counterList\":\"DriversScreen_counterList__2lqxy\",\"counter\":\"DriversScreen_counter__3xhvF\",\"counterNumber\":\"DriversScreen_counterNumber__3zJTH\",\"imageDescCell\":\"DriversScreen_imageDescCell__2c-W2\",\"descCell\":\"DriversScreen_descCell__2NuQi\",\"emailDriver\":\"DriversScreen_emailDriver__3ndcE\",\"rowCounters\":\"DriversScreen_rowCounters__1GQYf\",\"bold\":\"DriversScreen_bold__1V-OO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filtersList\":\"FilterList_filtersList__1PxI4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DeletedVehicleCircle_elevation-1__qnCvq\",\"elevation-2\":\"DeletedVehicleCircle_elevation-2__QB6w7\",\"elevation-3\":\"DeletedVehicleCircle_elevation-3__CA70J\",\"elevation-4\":\"DeletedVehicleCircle_elevation-4__lTZ40\",\"elevation-5\":\"DeletedVehicleCircle_elevation-5__3rgv6\",\"elevation-6\":\"DeletedVehicleCircle_elevation-6__1m79I\",\"elevation-7\":\"DeletedVehicleCircle_elevation-7__2MlV9\",\"elevation-8\":\"DeletedVehicleCircle_elevation-8__3Zsa2\",\"elevation-9\":\"DeletedVehicleCircle_elevation-9__1u_QU\",\"elevation-10\":\"DeletedVehicleCircle_elevation-10__2vvP5\",\"elevation-11\":\"DeletedVehicleCircle_elevation-11__3iFkk\",\"elevation-12\":\"DeletedVehicleCircle_elevation-12__3ChkH\",\"elevation-13\":\"DeletedVehicleCircle_elevation-13__2suRx\",\"elevation-14\":\"DeletedVehicleCircle_elevation-14__2SDXt\",\"elevation-15\":\"DeletedVehicleCircle_elevation-15__1T5uq\",\"elevation-16\":\"DeletedVehicleCircle_elevation-16__3FJ4b\",\"elevation-17\":\"DeletedVehicleCircle_elevation-17__1EFiB\",\"elevation-18\":\"DeletedVehicleCircle_elevation-18__ztc_Y\",\"elevation-19\":\"DeletedVehicleCircle_elevation-19__3um0k\",\"elevation-20\":\"DeletedVehicleCircle_elevation-20__2grJ4\",\"elevation-21\":\"DeletedVehicleCircle_elevation-21__2OFvf\",\"elevation-22\":\"DeletedVehicleCircle_elevation-22__1hKQd\",\"elevation-23\":\"DeletedVehicleCircle_elevation-23__1gAca\",\"elevation-24\":\"DeletedVehicleCircle_elevation-24__1IGyA\",\"deletedCircle\":\"DeletedVehicleCircle_deletedCircle__BLSIq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"PaginationTextInfo_elevation-1__2pECX\",\"elevation-2\":\"PaginationTextInfo_elevation-2__zmYMq\",\"elevation-3\":\"PaginationTextInfo_elevation-3__2hvFS\",\"elevation-4\":\"PaginationTextInfo_elevation-4__MIFCR\",\"elevation-5\":\"PaginationTextInfo_elevation-5__jfwcO\",\"elevation-6\":\"PaginationTextInfo_elevation-6__3REnP\",\"elevation-7\":\"PaginationTextInfo_elevation-7__2lInH\",\"elevation-8\":\"PaginationTextInfo_elevation-8__394V6\",\"elevation-9\":\"PaginationTextInfo_elevation-9__3v6aE\",\"elevation-10\":\"PaginationTextInfo_elevation-10__2pfv1\",\"elevation-11\":\"PaginationTextInfo_elevation-11__MF63u\",\"elevation-12\":\"PaginationTextInfo_elevation-12__1qbNX\",\"elevation-13\":\"PaginationTextInfo_elevation-13__32Ndh\",\"elevation-14\":\"PaginationTextInfo_elevation-14__GctxN\",\"elevation-15\":\"PaginationTextInfo_elevation-15__qmUf-\",\"elevation-16\":\"PaginationTextInfo_elevation-16__3d1yU\",\"elevation-17\":\"PaginationTextInfo_elevation-17__hdFDR\",\"elevation-18\":\"PaginationTextInfo_elevation-18__2-3jE\",\"elevation-19\":\"PaginationTextInfo_elevation-19__3S9RV\",\"elevation-20\":\"PaginationTextInfo_elevation-20__2Qepo\",\"elevation-21\":\"PaginationTextInfo_elevation-21__2qAP_\",\"elevation-22\":\"PaginationTextInfo_elevation-22__gIrOA\",\"elevation-23\":\"PaginationTextInfo_elevation-23__15ly2\",\"elevation-24\":\"PaginationTextInfo_elevation-24__clH9G\",\"paginationInfo\":\"PaginationTextInfo_paginationInfo__j_pR4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"PaginationWithInfo_elevation-1__inz2M\",\"elevation-2\":\"PaginationWithInfo_elevation-2__3WSVp\",\"elevation-3\":\"PaginationWithInfo_elevation-3__35xd8\",\"elevation-4\":\"PaginationWithInfo_elevation-4__10lNZ\",\"elevation-5\":\"PaginationWithInfo_elevation-5__liDO3\",\"elevation-6\":\"PaginationWithInfo_elevation-6__2lLRo\",\"elevation-7\":\"PaginationWithInfo_elevation-7__38cMf\",\"elevation-8\":\"PaginationWithInfo_elevation-8__3sUnd\",\"elevation-9\":\"PaginationWithInfo_elevation-9__2XXHc\",\"elevation-10\":\"PaginationWithInfo_elevation-10__1jkcR\",\"elevation-11\":\"PaginationWithInfo_elevation-11__1KKId\",\"elevation-12\":\"PaginationWithInfo_elevation-12__39aLb\",\"elevation-13\":\"PaginationWithInfo_elevation-13__12Qw3\",\"elevation-14\":\"PaginationWithInfo_elevation-14__ViDJt\",\"elevation-15\":\"PaginationWithInfo_elevation-15__1zPu5\",\"elevation-16\":\"PaginationWithInfo_elevation-16__Mdetf\",\"elevation-17\":\"PaginationWithInfo_elevation-17___PbW8\",\"elevation-18\":\"PaginationWithInfo_elevation-18__3I2Q6\",\"elevation-19\":\"PaginationWithInfo_elevation-19__2FQLX\",\"elevation-20\":\"PaginationWithInfo_elevation-20__25Jlh\",\"elevation-21\":\"PaginationWithInfo_elevation-21__2QQkP\",\"elevation-22\":\"PaginationWithInfo_elevation-22__DtzZk\",\"elevation-23\":\"PaginationWithInfo_elevation-23__6TXP_\",\"elevation-24\":\"PaginationWithInfo_elevation-24__1R6Tu\",\"container\":\"PaginationWithInfo_container__3x8Sk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CarContractTab_container__1VkZI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarVerificationList_elevation-1__2dKO8\",\"elevation-2\":\"CarVerificationList_elevation-2__19dQ7\",\"elevation-3\":\"CarVerificationList_elevation-3__1jJDf\",\"elevation-4\":\"CarVerificationList_elevation-4__2HDvB\",\"elevation-5\":\"CarVerificationList_elevation-5__3r_ws\",\"elevation-6\":\"CarVerificationList_elevation-6__JPadx\",\"elevation-7\":\"CarVerificationList_elevation-7__1ENed\",\"elevation-8\":\"CarVerificationList_elevation-8__3_dvl\",\"elevation-9\":\"CarVerificationList_elevation-9__1SFMX\",\"elevation-10\":\"CarVerificationList_elevation-10__3mgWn\",\"elevation-11\":\"CarVerificationList_elevation-11__1P2Q4\",\"elevation-12\":\"CarVerificationList_elevation-12__2SJE5\",\"elevation-13\":\"CarVerificationList_elevation-13__1TCdj\",\"elevation-14\":\"CarVerificationList_elevation-14__Mlsrk\",\"elevation-15\":\"CarVerificationList_elevation-15__11DcP\",\"elevation-16\":\"CarVerificationList_elevation-16__2Uf0T\",\"elevation-17\":\"CarVerificationList_elevation-17__2XJMX\",\"elevation-18\":\"CarVerificationList_elevation-18__2L91O\",\"elevation-19\":\"CarVerificationList_elevation-19__3Gt64\",\"elevation-20\":\"CarVerificationList_elevation-20__2ezhz\",\"elevation-21\":\"CarVerificationList_elevation-21__3nAax\",\"elevation-22\":\"CarVerificationList_elevation-22__3gfQd\",\"elevation-23\":\"CarVerificationList_elevation-23__rM66T\",\"elevation-24\":\"CarVerificationList_elevation-24__sPde7\",\"list\":\"CarVerificationList_list__2meE8\",\"tabHeader\":\"CarVerificationList_tabHeader__I5hxf\",\"counter\":\"CarVerificationList_counter__1f2XN\",\"counterNumber\":\"CarVerificationList_counterNumber__2p970\",\"flex\":\"CarVerificationList_flex__3Ws26\",\"fontBold\":\"CarVerificationList_fontBold__1plyx\",\"imageDescCell\":\"CarVerificationList_imageDescCell__-iQNJ\",\"descCell\":\"CarVerificationList_descCell__36Vy1\",\"filtersPopoverContainer\":\"CarVerificationList_filtersPopoverContainer__5gMrW\",\"contentImage\":\"CarVerificationList_contentImage__GckwE\",\"img\":\"CarVerificationList_img__3-DrM\",\"columnPlate\":\"CarVerificationList_columnPlate__1eDOW\",\"columnBrand\":\"CarVerificationList_columnBrand__1uFVX\",\"columnSpec\":\"CarVerificationList_columnSpec__2fAaz\",\"labelSmall\":\"CarVerificationList_labelSmall__18hU2\",\"spanCounter\":\"CarVerificationList_spanCounter__28pDq\",\"spanSuffixCustomize\":\"CarVerificationList_spanSuffixCustomize__1uNze\",\"countersContainer\":\"CarVerificationList_countersContainer__xRvz8\",\"counterBadge\":\"CarVerificationList_counterBadge__3Dei5\",\"stopContainer\":\"CarVerificationList_stopContainer__lZVKp\",\"iconHeader\":\"CarVerificationList_iconHeader__2-vmL\",\"iconStop\":\"CarVerificationList_iconStop__2sYAG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerContainer\":\"CarDashboardTab_headerContainer__3YmMv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"CarMaintenanceTab_elevation-1__2_mWy\",\"elevation-2\":\"CarMaintenanceTab_elevation-2__24IrV\",\"elevation-3\":\"CarMaintenanceTab_elevation-3__3SVrk\",\"elevation-4\":\"CarMaintenanceTab_elevation-4__1KBi6\",\"elevation-5\":\"CarMaintenanceTab_elevation-5__10k6p\",\"elevation-6\":\"CarMaintenanceTab_elevation-6__yQs4a\",\"elevation-7\":\"CarMaintenanceTab_elevation-7__cieWq\",\"elevation-8\":\"CarMaintenanceTab_elevation-8__wh8xL\",\"elevation-9\":\"CarMaintenanceTab_elevation-9__2YGfd\",\"elevation-10\":\"CarMaintenanceTab_elevation-10__3wdpa\",\"elevation-11\":\"CarMaintenanceTab_elevation-11__37jbj\",\"elevation-12\":\"CarMaintenanceTab_elevation-12__OI49J\",\"elevation-13\":\"CarMaintenanceTab_elevation-13__2beMC\",\"elevation-14\":\"CarMaintenanceTab_elevation-14__3ceUg\",\"elevation-15\":\"CarMaintenanceTab_elevation-15__1bDoC\",\"elevation-16\":\"CarMaintenanceTab_elevation-16__1f2Vz\",\"elevation-17\":\"CarMaintenanceTab_elevation-17__3-26G\",\"elevation-18\":\"CarMaintenanceTab_elevation-18__1L9BS\",\"elevation-19\":\"CarMaintenanceTab_elevation-19__4QXQL\",\"elevation-20\":\"CarMaintenanceTab_elevation-20__zndTx\",\"elevation-21\":\"CarMaintenanceTab_elevation-21__2253z\",\"elevation-22\":\"CarMaintenanceTab_elevation-22__FTUrq\",\"elevation-23\":\"CarMaintenanceTab_elevation-23__U_3fI\",\"elevation-24\":\"CarMaintenanceTab_elevation-24__27I-0\",\"container\":\"CarMaintenanceTab_container__29RaJ\",\"header\":\"CarMaintenanceTab_header__1-6eN\",\"icon\":\"CarMaintenanceTab_icon__38i2D\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"Modal_content__2X_Sq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AddMaintenanceModal_elevation-1__2fzkg\",\"elevation-2\":\"AddMaintenanceModal_elevation-2__2EepS\",\"elevation-3\":\"AddMaintenanceModal_elevation-3__1uNDT\",\"elevation-4\":\"AddMaintenanceModal_elevation-4__1RP7B\",\"elevation-5\":\"AddMaintenanceModal_elevation-5__1LkaN\",\"elevation-6\":\"AddMaintenanceModal_elevation-6__2O9q5\",\"elevation-7\":\"AddMaintenanceModal_elevation-7__X0Ts5\",\"elevation-8\":\"AddMaintenanceModal_elevation-8__3VSv-\",\"elevation-9\":\"AddMaintenanceModal_elevation-9__2RoIo\",\"elevation-10\":\"AddMaintenanceModal_elevation-10__3lojD\",\"elevation-11\":\"AddMaintenanceModal_elevation-11__2IAj0\",\"elevation-12\":\"AddMaintenanceModal_elevation-12__HiXg5\",\"elevation-13\":\"AddMaintenanceModal_elevation-13__3BsCY\",\"elevation-14\":\"AddMaintenanceModal_elevation-14__1_kh7\",\"elevation-15\":\"AddMaintenanceModal_elevation-15__3m0cG\",\"elevation-16\":\"AddMaintenanceModal_elevation-16__26pVz\",\"elevation-17\":\"AddMaintenanceModal_elevation-17__3Woqn\",\"elevation-18\":\"AddMaintenanceModal_elevation-18__25ctt\",\"elevation-19\":\"AddMaintenanceModal_elevation-19__3aYl1\",\"elevation-20\":\"AddMaintenanceModal_elevation-20__2BeV0\",\"elevation-21\":\"AddMaintenanceModal_elevation-21__1WMZk\",\"elevation-22\":\"AddMaintenanceModal_elevation-22__2yrVA\",\"elevation-23\":\"AddMaintenanceModal_elevation-23__2yigl\",\"elevation-24\":\"AddMaintenanceModal_elevation-24__2R_tC\",\"container\":\"AddMaintenanceModal_container__6-KkP\",\"titleContainer\":\"AddMaintenanceModal_titleContainer__1MXaB\",\"textTitle\":\"AddMaintenanceModal_textTitle__3aOcz\",\"messageContainer\":\"AddMaintenanceModal_messageContainer__2qhxn\",\"textMessage\":\"AddMaintenanceModal_textMessage__141vu\",\"buttons_container\":\"AddMaintenanceModal_buttons_container__14XBw\",\"header\":\"AddMaintenanceModal_header__2ahzW\",\"icon\":\"AddMaintenanceModal_icon__QfcU4\",\"content\":\"AddMaintenanceModal_content__V3rDa\",\"label\":\"AddMaintenanceModal_label__1Gllx\",\"errorLabel\":\"AddMaintenanceModal_errorLabel__2BlrN\",\"buttonsContainer\":\"AddMaintenanceModal_buttonsContainer__3zOUD\",\"button\":\"AddMaintenanceModal_button__1JjTj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"SuppliersDetails_elevation-1__1tTA_\",\"elevation-2\":\"SuppliersDetails_elevation-2__1BVBS\",\"elevation-3\":\"SuppliersDetails_elevation-3__1BiTd\",\"elevation-4\":\"SuppliersDetails_elevation-4__2NfiQ\",\"elevation-5\":\"SuppliersDetails_elevation-5__1gNCA\",\"elevation-6\":\"SuppliersDetails_elevation-6__1mSir\",\"elevation-7\":\"SuppliersDetails_elevation-7__3fIF9\",\"elevation-8\":\"SuppliersDetails_elevation-8__3RPji\",\"elevation-9\":\"SuppliersDetails_elevation-9__2bg8D\",\"elevation-10\":\"SuppliersDetails_elevation-10__3IHbf\",\"elevation-11\":\"SuppliersDetails_elevation-11__3gI5c\",\"elevation-12\":\"SuppliersDetails_elevation-12__OcOLo\",\"elevation-13\":\"SuppliersDetails_elevation-13__3tooy\",\"elevation-14\":\"SuppliersDetails_elevation-14__2FZdh\",\"elevation-15\":\"SuppliersDetails_elevation-15__1CtU-\",\"elevation-16\":\"SuppliersDetails_elevation-16__1WFmE\",\"elevation-17\":\"SuppliersDetails_elevation-17__1SU_V\",\"elevation-18\":\"SuppliersDetails_elevation-18__15Iq0\",\"elevation-19\":\"SuppliersDetails_elevation-19__mnYcl\",\"elevation-20\":\"SuppliersDetails_elevation-20__1w0wU\",\"elevation-21\":\"SuppliersDetails_elevation-21__1a24q\",\"elevation-22\":\"SuppliersDetails_elevation-22__BOy67\",\"elevation-23\":\"SuppliersDetails_elevation-23__fNasr\",\"elevation-24\":\"SuppliersDetails_elevation-24__3odWe\",\"pageNameContainer\":\"SuppliersDetails_pageNameContainer__LELUm\",\"pageNameContent\":\"SuppliersDetails_pageNameContent__XQX7c\",\"pageNameContentImage\":\"SuppliersDetails_pageNameContentImage__37Bmh\",\"pageNameContentText\":\"SuppliersDetails_pageNameContentText__3e8qE\",\"form\":\"SuppliersDetails_form__3vFN6\",\"label\":\"SuppliersDetails_label__w56dj\",\"image\":\"SuppliersDetails_image__s7_SW\",\"buttonContainer\":\"SuppliersDetails_buttonContainer__13ok6\",\"containerSmallButton\":\"SuppliersDetails_containerSmallButton__2IRFv\",\"iconAdd\":\"SuppliersDetails_iconAdd__3SwDt\",\"rowSupplierContacts\":\"SuppliersDetails_rowSupplierContacts__26Ckr\",\"labelSuppliers\":\"SuppliersDetails_labelSuppliers__Bpdv3\",\"removeIcon\":\"SuppliersDetails_removeIcon__1H6jk\",\"noInfoText\":\"SuppliersDetails_noInfoText__22adn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pin\":\"RoutineMachine_pin__vdpm6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleSegmentsList_elevation-1__pTwUg\",\"elevation-2\":\"VehicleSegmentsList_elevation-2__2VDHp\",\"elevation-3\":\"VehicleSegmentsList_elevation-3__3HxMy\",\"elevation-4\":\"VehicleSegmentsList_elevation-4__1ZYfK\",\"elevation-5\":\"VehicleSegmentsList_elevation-5__2-H7I\",\"elevation-6\":\"VehicleSegmentsList_elevation-6__2r2e8\",\"elevation-7\":\"VehicleSegmentsList_elevation-7__Dk607\",\"elevation-8\":\"VehicleSegmentsList_elevation-8__3UnZx\",\"elevation-9\":\"VehicleSegmentsList_elevation-9__3IaaQ\",\"elevation-10\":\"VehicleSegmentsList_elevation-10__3kTsI\",\"elevation-11\":\"VehicleSegmentsList_elevation-11__1WctM\",\"elevation-12\":\"VehicleSegmentsList_elevation-12__2h9D0\",\"elevation-13\":\"VehicleSegmentsList_elevation-13__3UgwY\",\"elevation-14\":\"VehicleSegmentsList_elevation-14__wISua\",\"elevation-15\":\"VehicleSegmentsList_elevation-15__2IJue\",\"elevation-16\":\"VehicleSegmentsList_elevation-16__179ac\",\"elevation-17\":\"VehicleSegmentsList_elevation-17__1LA4w\",\"elevation-18\":\"VehicleSegmentsList_elevation-18__17Ort\",\"elevation-19\":\"VehicleSegmentsList_elevation-19__41tEE\",\"elevation-20\":\"VehicleSegmentsList_elevation-20__3_Rze\",\"elevation-21\":\"VehicleSegmentsList_elevation-21__17m4N\",\"elevation-22\":\"VehicleSegmentsList_elevation-22__NbvGl\",\"elevation-23\":\"VehicleSegmentsList_elevation-23__26vR7\",\"elevation-24\":\"VehicleSegmentsList_elevation-24__269WO\",\"columnPlate\":\"VehicleSegmentsList_columnPlate__2YeA7\",\"columnBrand\":\"VehicleSegmentsList_columnBrand__3f7he\",\"columnSpec\":\"VehicleSegmentsList_columnSpec__2PRWd\",\"tabHeader\":\"VehicleSegmentsList_tabHeader__3CGGQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"VehicleSegmentsTab_container__3JyI7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"FormController_elevation-1__3J8EU\",\"elevation-2\":\"FormController_elevation-2__2Mi47\",\"elevation-3\":\"FormController_elevation-3__zL9LW\",\"elevation-4\":\"FormController_elevation-4__DF8lV\",\"elevation-5\":\"FormController_elevation-5__3PHyz\",\"elevation-6\":\"FormController_elevation-6__3l3wb\",\"elevation-7\":\"FormController_elevation-7__3rq5Z\",\"elevation-8\":\"FormController_elevation-8__3Wu_N\",\"elevation-9\":\"FormController_elevation-9__14dD_\",\"elevation-10\":\"FormController_elevation-10__VeVq4\",\"elevation-11\":\"FormController_elevation-11__1o4DP\",\"elevation-12\":\"FormController_elevation-12__1K9ez\",\"elevation-13\":\"FormController_elevation-13__3AOQq\",\"elevation-14\":\"FormController_elevation-14__1zCNK\",\"elevation-15\":\"FormController_elevation-15__3N3co\",\"elevation-16\":\"FormController_elevation-16__1qa3b\",\"elevation-17\":\"FormController_elevation-17__32E-Q\",\"elevation-18\":\"FormController_elevation-18__1HDRk\",\"elevation-19\":\"FormController_elevation-19__16nvd\",\"elevation-20\":\"FormController_elevation-20__16ouF\",\"elevation-21\":\"FormController_elevation-21__geytj\",\"elevation-22\":\"FormController_elevation-22__1TTVG\",\"elevation-23\":\"FormController_elevation-23__2l7cV\",\"elevation-24\":\"FormController_elevation-24__1OJIr\",\"formController\":\"FormController_formController__1c0XY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"VehicleModelTab_container__bvKgh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleBrandsList_elevation-1__2UV_D\",\"elevation-2\":\"VehicleBrandsList_elevation-2__Ys0R1\",\"elevation-3\":\"VehicleBrandsList_elevation-3__2JIsh\",\"elevation-4\":\"VehicleBrandsList_elevation-4__n3jiY\",\"elevation-5\":\"VehicleBrandsList_elevation-5__159KP\",\"elevation-6\":\"VehicleBrandsList_elevation-6__URyD7\",\"elevation-7\":\"VehicleBrandsList_elevation-7__1YP1_\",\"elevation-8\":\"VehicleBrandsList_elevation-8__2XsU8\",\"elevation-9\":\"VehicleBrandsList_elevation-9__1DPY0\",\"elevation-10\":\"VehicleBrandsList_elevation-10__2ijSy\",\"elevation-11\":\"VehicleBrandsList_elevation-11__21fG7\",\"elevation-12\":\"VehicleBrandsList_elevation-12__3P0Go\",\"elevation-13\":\"VehicleBrandsList_elevation-13__363Ph\",\"elevation-14\":\"VehicleBrandsList_elevation-14__1NwWW\",\"elevation-15\":\"VehicleBrandsList_elevation-15__16ce3\",\"elevation-16\":\"VehicleBrandsList_elevation-16__1NSBk\",\"elevation-17\":\"VehicleBrandsList_elevation-17__8tQmz\",\"elevation-18\":\"VehicleBrandsList_elevation-18__2JV8s\",\"elevation-19\":\"VehicleBrandsList_elevation-19__1xjEI\",\"elevation-20\":\"VehicleBrandsList_elevation-20__3ggL6\",\"elevation-21\":\"VehicleBrandsList_elevation-21__tOszW\",\"elevation-22\":\"VehicleBrandsList_elevation-22__1cl9q\",\"elevation-23\":\"VehicleBrandsList_elevation-23__ID0Mj\",\"elevation-24\":\"VehicleBrandsList_elevation-24__1gAl0\",\"columnPlate\":\"VehicleBrandsList_columnPlate__x-eSh\",\"columnBrand\":\"VehicleBrandsList_columnBrand__1H3SV\",\"columnSpec\":\"VehicleBrandsList_columnSpec__2DYwB\",\"tabHeader\":\"VehicleBrandsList_tabHeader__A1LUc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"VehicleBrandsTab_container__baGVA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SuppliersTab_container__3oNPx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"VehicleCard_elevation-1__24Gbe\",\"elevation-2\":\"VehicleCard_elevation-2__yjuz3\",\"elevation-3\":\"VehicleCard_elevation-3__MyQPt\",\"elevation-4\":\"VehicleCard_elevation-4__2DE1Q\",\"elevation-5\":\"VehicleCard_elevation-5__300ve\",\"elevation-6\":\"VehicleCard_elevation-6__btzmn\",\"elevation-7\":\"VehicleCard_elevation-7__1qNDT\",\"elevation-8\":\"VehicleCard_elevation-8__1PCbc\",\"elevation-9\":\"VehicleCard_elevation-9__3anBf\",\"elevation-10\":\"VehicleCard_elevation-10__1gH5g\",\"elevation-11\":\"VehicleCard_elevation-11__2mxVH\",\"elevation-12\":\"VehicleCard_elevation-12__2ioa5\",\"elevation-13\":\"VehicleCard_elevation-13__3GKtD\",\"elevation-14\":\"VehicleCard_elevation-14__1E_zN\",\"elevation-15\":\"VehicleCard_elevation-15__dXg97\",\"elevation-16\":\"VehicleCard_elevation-16__1EFja\",\"elevation-17\":\"VehicleCard_elevation-17__fEyuu\",\"elevation-18\":\"VehicleCard_elevation-18__1Fbhq\",\"elevation-19\":\"VehicleCard_elevation-19__3BqqD\",\"elevation-20\":\"VehicleCard_elevation-20__3MY1d\",\"elevation-21\":\"VehicleCard_elevation-21__3NvsT\",\"elevation-22\":\"VehicleCard_elevation-22__3JUFP\",\"elevation-23\":\"VehicleCard_elevation-23__3tW1t\",\"elevation-24\":\"VehicleCard_elevation-24__2c5Yb\",\"cardContainer\":\"VehicleCard_cardContainer__2MmpV\",\"iconHeader\":\"VehicleCard_iconHeader__3ia9m\",\"iconStop\":\"VehicleCard_iconStop__3Aiq1\",\"iconNumber\":\"VehicleCard_iconNumber__2SK4u\",\"containerBadge\":\"VehicleCard_containerBadge__3Nyhz\",\"iconCalendar\":\"VehicleCard_iconCalendar__3Ogki\",\"infoBadge\":\"VehicleCard_infoBadge__3Ebr3\",\"cardContent\":\"VehicleCard_cardContent__2mnHC\",\"contentImage\":\"VehicleCard_contentImage__LYaBp\",\"img\":\"VehicleCard_img__2NaVs\",\"columnPlate\":\"VehicleCard_columnPlate__1QrOH\",\"columnBrand\":\"VehicleCard_columnBrand__2NpHT\",\"columnSpec\":\"VehicleCard_columnSpec__3K63U\",\"columnLocals\":\"VehicleCard_columnLocals__1vUiv\",\"columnDriver\":\"VehicleCard_columnDriver__2H9cN\",\"bottomLabels\":\"VehicleCard_bottomLabels__2MkXZ\",\"fontBold\":\"VehicleCard_fontBold__3q5NQ\",\"opacity\":\"VehicleCard_opacity__bIhVy\",\"opacityBackground\":\"VehicleCard_opacityBackground__3aznN\",\"overlay\":\"VehicleCard_overlay__ubFWW\",\"overlayText\":\"VehicleCard_overlayText__1g3ma\",\"inputGroup\":\"VehicleCard_inputGroup__3DF2x\",\"position\":\"VehicleCard_position__361kD\",\"label\":\"VehicleCard_label__2DAyq\",\"topLeft\":\"VehicleCard_topLeft__3BHuZ\",\"cardContainerHeight\":\"VehicleCard_cardContainerHeight__1HM6-\",\"noGpsData\":\"VehicleCard_noGpsData__pb3Ww\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"GenericTypesTab_container__g4cHu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"DamageTypesList_elevation-1__2V3vq\",\"elevation-2\":\"DamageTypesList_elevation-2__3QslB\",\"elevation-3\":\"DamageTypesList_elevation-3__3wUcM\",\"elevation-4\":\"DamageTypesList_elevation-4__2xmiv\",\"elevation-5\":\"DamageTypesList_elevation-5__2xbbG\",\"elevation-6\":\"DamageTypesList_elevation-6__194u7\",\"elevation-7\":\"DamageTypesList_elevation-7__2UzCw\",\"elevation-8\":\"DamageTypesList_elevation-8__LTj06\",\"elevation-9\":\"DamageTypesList_elevation-9__ptnIX\",\"elevation-10\":\"DamageTypesList_elevation-10__3-nSB\",\"elevation-11\":\"DamageTypesList_elevation-11__3rZ-3\",\"elevation-12\":\"DamageTypesList_elevation-12__1yN8W\",\"elevation-13\":\"DamageTypesList_elevation-13__2gTqy\",\"elevation-14\":\"DamageTypesList_elevation-14__2oGrL\",\"elevation-15\":\"DamageTypesList_elevation-15__20rJK\",\"elevation-16\":\"DamageTypesList_elevation-16__2nEJN\",\"elevation-17\":\"DamageTypesList_elevation-17__2b8YJ\",\"elevation-18\":\"DamageTypesList_elevation-18__1foLX\",\"elevation-19\":\"DamageTypesList_elevation-19__16_mx\",\"elevation-20\":\"DamageTypesList_elevation-20__1pFdJ\",\"elevation-21\":\"DamageTypesList_elevation-21__3H_Hz\",\"elevation-22\":\"DamageTypesList_elevation-22__38dsL\",\"elevation-23\":\"DamageTypesList_elevation-23__1uD9L\",\"elevation-24\":\"DamageTypesList_elevation-24__2mQQA\",\"columnPlate\":\"DamageTypesList_columnPlate__GgBqD\",\"columnBrand\":\"DamageTypesList_columnBrand__lae2v\",\"columnSpec\":\"DamageTypesList_columnSpec__1ehT9\",\"tabHeader\":\"DamageTypesList_tabHeader__17IWZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DamageTypesTab_container__3-eJY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LocalsTab_container__2Tbmv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlarmTab_elevation-1__2vYSX\",\"elevation-2\":\"AlarmTab_elevation-2__MYBW-\",\"elevation-3\":\"AlarmTab_elevation-3__1lxQO\",\"elevation-4\":\"AlarmTab_elevation-4__3kD0-\",\"elevation-5\":\"AlarmTab_elevation-5___hO4J\",\"elevation-6\":\"AlarmTab_elevation-6__2THCG\",\"elevation-7\":\"AlarmTab_elevation-7__12153\",\"elevation-8\":\"AlarmTab_elevation-8__7_5Oo\",\"elevation-9\":\"AlarmTab_elevation-9__ZSGvd\",\"elevation-10\":\"AlarmTab_elevation-10__1Yi9z\",\"elevation-11\":\"AlarmTab_elevation-11__20eMk\",\"elevation-12\":\"AlarmTab_elevation-12__1kX5s\",\"elevation-13\":\"AlarmTab_elevation-13__sYeQA\",\"elevation-14\":\"AlarmTab_elevation-14__miZwR\",\"elevation-15\":\"AlarmTab_elevation-15__1Mtbu\",\"elevation-16\":\"AlarmTab_elevation-16__1V5_u\",\"elevation-17\":\"AlarmTab_elevation-17__2PUVv\",\"elevation-18\":\"AlarmTab_elevation-18__uLe63\",\"elevation-19\":\"AlarmTab_elevation-19__3-dsh\",\"elevation-20\":\"AlarmTab_elevation-20__16XtH\",\"elevation-21\":\"AlarmTab_elevation-21__20SAC\",\"elevation-22\":\"AlarmTab_elevation-22__268k3\",\"elevation-23\":\"AlarmTab_elevation-23__80ZCt\",\"elevation-24\":\"AlarmTab_elevation-24__3SYLO\",\"box\":\"AlarmTab_box__10S-8\",\"header\":\"AlarmTab_header__3QIH-\",\"icon\":\"AlarmTab_icon__rpJ3E\",\"label\":\"AlarmTab_label__vj2JX\",\"buttonsContainer\":\"AlarmTab_buttonsContainer__1yY3Q\",\"button\":\"AlarmTab_button__2uSEU\",\"smallButtonsContainer\":\"AlarmTab_smallButtonsContainer__1yPXZ\",\"map\":\"AlarmTab_map__1iWsQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowCounters\":\"CounterBoxDriver_rowCounters__1KA2J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"AlarmScreen_elevation-1__2Bzlh\",\"elevation-2\":\"AlarmScreen_elevation-2__KIVJB\",\"elevation-3\":\"AlarmScreen_elevation-3__GxFwG\",\"elevation-4\":\"AlarmScreen_elevation-4__2KAGY\",\"elevation-5\":\"AlarmScreen_elevation-5__2wbPs\",\"elevation-6\":\"AlarmScreen_elevation-6__3TAO3\",\"elevation-7\":\"AlarmScreen_elevation-7__1mcJ1\",\"elevation-8\":\"AlarmScreen_elevation-8__d8x31\",\"elevation-9\":\"AlarmScreen_elevation-9__2AcRC\",\"elevation-10\":\"AlarmScreen_elevation-10__3_jNU\",\"elevation-11\":\"AlarmScreen_elevation-11__WFNeN\",\"elevation-12\":\"AlarmScreen_elevation-12__3ZxRi\",\"elevation-13\":\"AlarmScreen_elevation-13__1yifj\",\"elevation-14\":\"AlarmScreen_elevation-14__3r31A\",\"elevation-15\":\"AlarmScreen_elevation-15__OmmGx\",\"elevation-16\":\"AlarmScreen_elevation-16__1lS5g\",\"elevation-17\":\"AlarmScreen_elevation-17__16ZRc\",\"elevation-18\":\"AlarmScreen_elevation-18__3Lt_M\",\"elevation-19\":\"AlarmScreen_elevation-19__3gVPA\",\"elevation-20\":\"AlarmScreen_elevation-20__lBmVg\",\"elevation-21\":\"AlarmScreen_elevation-21__yrNRX\",\"elevation-22\":\"AlarmScreen_elevation-22__fXuPR\",\"elevation-23\":\"AlarmScreen_elevation-23__3pryp\",\"elevation-24\":\"AlarmScreen_elevation-24__2-ic7\",\"box\":\"AlarmScreen_box__1CFUF\",\"header\":\"AlarmScreen_header__3SolI\",\"icon\":\"AlarmScreen_icon__35WaQ\",\"label\":\"AlarmScreen_label__3SiP8\",\"buttons\":\"AlarmScreen_buttons__8Lrit\",\"button\":\"AlarmScreen_button__1Pata\",\"smallButtonsContainer\":\"AlarmScreen_smallButtonsContainer__mr_ZF\",\"map\":\"AlarmScreen_map__3gVGJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"LocalsDetails_elevation-1__1L3Vn\",\"elevation-2\":\"LocalsDetails_elevation-2__2cqJS\",\"elevation-3\":\"LocalsDetails_elevation-3__4I09V\",\"elevation-4\":\"LocalsDetails_elevation-4__5YsK9\",\"elevation-5\":\"LocalsDetails_elevation-5__gsvyM\",\"elevation-6\":\"LocalsDetails_elevation-6__3sYYk\",\"elevation-7\":\"LocalsDetails_elevation-7__3nwv9\",\"elevation-8\":\"LocalsDetails_elevation-8__28TP9\",\"elevation-9\":\"LocalsDetails_elevation-9__3tDom\",\"elevation-10\":\"LocalsDetails_elevation-10__1fr39\",\"elevation-11\":\"LocalsDetails_elevation-11__2BDat\",\"elevation-12\":\"LocalsDetails_elevation-12__3bjR8\",\"elevation-13\":\"LocalsDetails_elevation-13__2wPXh\",\"elevation-14\":\"LocalsDetails_elevation-14__3dQ2V\",\"elevation-15\":\"LocalsDetails_elevation-15__3021c\",\"elevation-16\":\"LocalsDetails_elevation-16__2MgUH\",\"elevation-17\":\"LocalsDetails_elevation-17__-dr7Y\",\"elevation-18\":\"LocalsDetails_elevation-18__1FE04\",\"elevation-19\":\"LocalsDetails_elevation-19__3ypIO\",\"elevation-20\":\"LocalsDetails_elevation-20__3c0c5\",\"elevation-21\":\"LocalsDetails_elevation-21__3JShJ\",\"elevation-22\":\"LocalsDetails_elevation-22__l-n_O\",\"elevation-23\":\"LocalsDetails_elevation-23__32q8m\",\"elevation-24\":\"LocalsDetails_elevation-24__2mUea\",\"pageNameContainer\":\"LocalsDetails_pageNameContainer__1Akpa\",\"pageNameContent\":\"LocalsDetails_pageNameContent__2AVd9\",\"pageNameContentImage\":\"LocalsDetails_pageNameContentImage__1q_l9\",\"pageNameContentText\":\"LocalsDetails_pageNameContentText__1doqA\",\"form\":\"LocalsDetails_form__1K9sj\",\"label\":\"LocalsDetails_label__2IoFI\",\"image\":\"LocalsDetails_image__q3ijC\",\"buttonContainer\":\"LocalsDetails_buttonContainer__1XVjK\",\"containerSmallButton\":\"LocalsDetails_containerSmallButton__3z_6O\",\"iconAdd\":\"LocalsDetails_iconAdd__zjQ0P\",\"rowLocalContacts\":\"LocalsDetails_rowLocalContacts__1sUjp\",\"labelLocals\":\"LocalsDetails_labelLocals__1BtyC\",\"removeIcon\":\"LocalsDetails_removeIcon__3Oyfw\",\"noInfoText\":\"LocalsDetails_noInfoText__1sO3t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ReservationFormScreen_elevation-1__3qgSO\",\"elevation-2\":\"ReservationFormScreen_elevation-2__2i7Tc\",\"elevation-3\":\"ReservationFormScreen_elevation-3__3PruM\",\"elevation-4\":\"ReservationFormScreen_elevation-4__1XXS8\",\"elevation-5\":\"ReservationFormScreen_elevation-5__3_yff\",\"elevation-6\":\"ReservationFormScreen_elevation-6__jLLtr\",\"elevation-7\":\"ReservationFormScreen_elevation-7__3-tzn\",\"elevation-8\":\"ReservationFormScreen_elevation-8__3i8sT\",\"elevation-9\":\"ReservationFormScreen_elevation-9__3djHP\",\"elevation-10\":\"ReservationFormScreen_elevation-10__3UZaT\",\"elevation-11\":\"ReservationFormScreen_elevation-11__1yG15\",\"elevation-12\":\"ReservationFormScreen_elevation-12__1fkHP\",\"elevation-13\":\"ReservationFormScreen_elevation-13__1aO1r\",\"elevation-14\":\"ReservationFormScreen_elevation-14__1pfQJ\",\"elevation-15\":\"ReservationFormScreen_elevation-15__1xgfZ\",\"elevation-16\":\"ReservationFormScreen_elevation-16__jXCNq\",\"elevation-17\":\"ReservationFormScreen_elevation-17__3EFtk\",\"elevation-18\":\"ReservationFormScreen_elevation-18__1KC3P\",\"elevation-19\":\"ReservationFormScreen_elevation-19__JS2eE\",\"elevation-20\":\"ReservationFormScreen_elevation-20__33moD\",\"elevation-21\":\"ReservationFormScreen_elevation-21__qcery\",\"elevation-22\":\"ReservationFormScreen_elevation-22__2tNOo\",\"elevation-23\":\"ReservationFormScreen_elevation-23__2rI8D\",\"elevation-24\":\"ReservationFormScreen_elevation-24__1cJcM\",\"bold\":\"ReservationFormScreen_bold__2GgpP\",\"formContent\":\"ReservationFormScreen_formContent__2-1Ko\",\"details\":\"ReservationFormScreen_details__6WmWV\",\"image\":\"ReservationFormScreen_image__1ysxn\",\"contentImage\":\"ReservationFormScreen_contentImage__28Scd\",\"img\":\"ReservationFormScreen_img__B9gvT\",\"description\":\"ReservationFormScreen_description__1yxiW\",\"smallLabel\":\"ReservationFormScreen_smallLabel__1oPJi\",\"divider\":\"ReservationFormScreen_divider__2ru08\",\"label\":\"ReservationFormScreen_label__2PUS_\",\"warningInput\":\"ReservationFormScreen_warningInput__15jEZ\",\"warningLabel\":\"ReservationFormScreen_warningLabel__13dAP\",\"warningMessage\":\"ReservationFormScreen_warningMessage__144xV\",\"buttonsFooter\":\"ReservationFormScreen_buttonsFooter__1UOxR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ImportChargeScreen_elevation-1__IquVj\",\"elevation-2\":\"ImportChargeScreen_elevation-2__zlQir\",\"elevation-3\":\"ImportChargeScreen_elevation-3__1XbrQ\",\"elevation-4\":\"ImportChargeScreen_elevation-4__2EE7M\",\"elevation-5\":\"ImportChargeScreen_elevation-5__3r45N\",\"elevation-6\":\"ImportChargeScreen_elevation-6__-2Hb7\",\"elevation-7\":\"ImportChargeScreen_elevation-7__31mG9\",\"elevation-8\":\"ImportChargeScreen_elevation-8__2AXZj\",\"elevation-9\":\"ImportChargeScreen_elevation-9__2g46k\",\"elevation-10\":\"ImportChargeScreen_elevation-10__1YF0O\",\"elevation-11\":\"ImportChargeScreen_elevation-11__34iXV\",\"elevation-12\":\"ImportChargeScreen_elevation-12__jEyxH\",\"elevation-13\":\"ImportChargeScreen_elevation-13__2yYED\",\"elevation-14\":\"ImportChargeScreen_elevation-14__1XHK7\",\"elevation-15\":\"ImportChargeScreen_elevation-15__1l_Ro\",\"elevation-16\":\"ImportChargeScreen_elevation-16__Qipv-\",\"elevation-17\":\"ImportChargeScreen_elevation-17__3kVON\",\"elevation-18\":\"ImportChargeScreen_elevation-18__1KP1i\",\"elevation-19\":\"ImportChargeScreen_elevation-19__S1Ftr\",\"elevation-20\":\"ImportChargeScreen_elevation-20__2FEyB\",\"elevation-21\":\"ImportChargeScreen_elevation-21__Mmgt0\",\"elevation-22\":\"ImportChargeScreen_elevation-22__2Wqx4\",\"elevation-23\":\"ImportChargeScreen_elevation-23__22QVY\",\"elevation-24\":\"ImportChargeScreen_elevation-24__3wmLE\",\"box\":\"ImportChargeScreen_box__2GxO4\",\"header\":\"ImportChargeScreen_header__2DM-W\",\"icon\":\"ImportChargeScreen_icon__1Rw7B\",\"buttonsContainer\":\"ImportChargeScreen_buttonsContainer__14Ymp\",\"button\":\"ImportChargeScreen_button__3jLT6\",\"label\":\"ImportChargeScreen_label__ADhoj\",\"errorField\":\"ImportChargeScreen_errorField__2sNcp\",\"cellContainer\":\"ImportChargeScreen_cellContainer__oaNhv\",\"firstRow\":\"ImportChargeScreen_firstRow__b88N0\",\"secondRow\":\"ImportChargeScreen_secondRow__QG-wz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"Sidebar_elevation-1__2RhFY\",\"elevation-2\":\"Sidebar_elevation-2__3Nl2X\",\"elevation-3\":\"Sidebar_elevation-3__1-qqo\",\"elevation-4\":\"Sidebar_elevation-4__2NG8x\",\"elevation-5\":\"Sidebar_elevation-5__RW-Yr\",\"elevation-6\":\"Sidebar_elevation-6__3G0vs\",\"elevation-7\":\"Sidebar_elevation-7__3UEkH\",\"elevation-8\":\"Sidebar_elevation-8__j-R7d\",\"elevation-9\":\"Sidebar_elevation-9__8R5JU\",\"elevation-10\":\"Sidebar_elevation-10__1oGHT\",\"elevation-11\":\"Sidebar_elevation-11__3TV0T\",\"elevation-12\":\"Sidebar_elevation-12__y860o\",\"elevation-13\":\"Sidebar_elevation-13__1arcm\",\"elevation-14\":\"Sidebar_elevation-14__1BXpd\",\"elevation-15\":\"Sidebar_elevation-15__lMK2l\",\"elevation-16\":\"Sidebar_elevation-16__2L-1-\",\"elevation-17\":\"Sidebar_elevation-17__IOTBG\",\"elevation-18\":\"Sidebar_elevation-18__1Z6jK\",\"elevation-19\":\"Sidebar_elevation-19__3mFE0\",\"elevation-20\":\"Sidebar_elevation-20__1Gn0K\",\"elevation-21\":\"Sidebar_elevation-21__FGiZo\",\"elevation-22\":\"Sidebar_elevation-22__1_II3\",\"elevation-23\":\"Sidebar_elevation-23__3fjMv\",\"elevation-24\":\"Sidebar_elevation-24__2M7oP\",\"container\":\"Sidebar_container__ZYZOM\",\"innerContainer\":\"Sidebar_innerContainer__3p5be\",\"logoContainer\":\"Sidebar_logoContainer__39usL\",\"itemsContainer\":\"Sidebar_itemsContainer__2pDIc\",\"item\":\"Sidebar_item__24zZW\",\"itemActive\":\"Sidebar_itemActive__2o_eA\",\"itemText\":\"Sidebar_itemText__28pUL\",\"floatingBadge\":\"Sidebar_floatingBadge__2JbBB\",\"bottom\":\"Sidebar_bottom__3_uie\",\"profileItem\":\"Sidebar_profileItem__A4Bkt\",\"profileAvatar\":\"Sidebar_profileAvatar__2yvGz\",\"profileInfo\":\"Sidebar_profileInfo__1jIRS\",\"profileName\":\"Sidebar_profileName__1e2G3\",\"profileChevron\":\"Sidebar_profileChevron__2Q6-U\",\"profileRole\":\"Sidebar_profileRole__3tXcv\",\"copyright\":\"Sidebar_copyright__1-ZQk\",\"popoverContainer\":\"Sidebar_popoverContainer__tF3nX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ChargeFiltersScreen_elevation-1__1gMdR\",\"elevation-2\":\"ChargeFiltersScreen_elevation-2__38oKv\",\"elevation-3\":\"ChargeFiltersScreen_elevation-3__s87yU\",\"elevation-4\":\"ChargeFiltersScreen_elevation-4__1zI9l\",\"elevation-5\":\"ChargeFiltersScreen_elevation-5__3_040\",\"elevation-6\":\"ChargeFiltersScreen_elevation-6__32Di-\",\"elevation-7\":\"ChargeFiltersScreen_elevation-7__1JxJr\",\"elevation-8\":\"ChargeFiltersScreen_elevation-8__3O_ji\",\"elevation-9\":\"ChargeFiltersScreen_elevation-9__2r-c1\",\"elevation-10\":\"ChargeFiltersScreen_elevation-10__1aqgA\",\"elevation-11\":\"ChargeFiltersScreen_elevation-11__32Qp6\",\"elevation-12\":\"ChargeFiltersScreen_elevation-12__1BLt7\",\"elevation-13\":\"ChargeFiltersScreen_elevation-13__2LD9e\",\"elevation-14\":\"ChargeFiltersScreen_elevation-14__2hTbP\",\"elevation-15\":\"ChargeFiltersScreen_elevation-15__2otkV\",\"elevation-16\":\"ChargeFiltersScreen_elevation-16__3EUER\",\"elevation-17\":\"ChargeFiltersScreen_elevation-17__1qbXP\",\"elevation-18\":\"ChargeFiltersScreen_elevation-18__2_PQB\",\"elevation-19\":\"ChargeFiltersScreen_elevation-19__2RMx1\",\"elevation-20\":\"ChargeFiltersScreen_elevation-20__8uSuP\",\"elevation-21\":\"ChargeFiltersScreen_elevation-21__C5XXY\",\"elevation-22\":\"ChargeFiltersScreen_elevation-22__uVlWi\",\"elevation-23\":\"ChargeFiltersScreen_elevation-23__2v8Wj\",\"elevation-24\":\"ChargeFiltersScreen_elevation-24__2OXBg\",\"bold\":\"ChargeFiltersScreen_bold__uNdxr\",\"formContent\":\"ChargeFiltersScreen_formContent__vhb77\",\"buttonsFooter\":\"ChargeFiltersScreen_buttonsFooter__1Ntzf\",\"dateRangeCustom\":\"ChargeFiltersScreen_dateRangeCustom__2oG2f\",\"situationDetails\":\"ChargeFiltersScreen_situationDetails__15J0f\",\"placeholder\":\"ChargeFiltersScreen_placeholder__3x4to\",\"labelContainer\":\"ChargeFiltersScreen_labelContainer__3xAU_\",\"selected\":\"ChargeFiltersScreen_selected__cxSh6\",\"notSelected\":\"ChargeFiltersScreen_notSelected__21VCT\",\"labelContent\":\"ChargeFiltersScreen_labelContent__s1Ij2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"ReservationScreen_elevation-1__1AjI0\",\"elevation-2\":\"ReservationScreen_elevation-2__2WMhp\",\"elevation-3\":\"ReservationScreen_elevation-3__2holk\",\"elevation-4\":\"ReservationScreen_elevation-4__a3k9F\",\"elevation-5\":\"ReservationScreen_elevation-5__1nss8\",\"elevation-6\":\"ReservationScreen_elevation-6__M6pF6\",\"elevation-7\":\"ReservationScreen_elevation-7__r7AVR\",\"elevation-8\":\"ReservationScreen_elevation-8__CcZG9\",\"elevation-9\":\"ReservationScreen_elevation-9__1f61N\",\"elevation-10\":\"ReservationScreen_elevation-10__3bOgl\",\"elevation-11\":\"ReservationScreen_elevation-11__39KL-\",\"elevation-12\":\"ReservationScreen_elevation-12__RtbXe\",\"elevation-13\":\"ReservationScreen_elevation-13__HDxUt\",\"elevation-14\":\"ReservationScreen_elevation-14__zd7wk\",\"elevation-15\":\"ReservationScreen_elevation-15__12JrI\",\"elevation-16\":\"ReservationScreen_elevation-16__2PaM_\",\"elevation-17\":\"ReservationScreen_elevation-17__1IkFY\",\"elevation-18\":\"ReservationScreen_elevation-18__ulYYG\",\"elevation-19\":\"ReservationScreen_elevation-19__5hPw9\",\"elevation-20\":\"ReservationScreen_elevation-20__1vl_t\",\"elevation-21\":\"ReservationScreen_elevation-21__24ECC\",\"elevation-22\":\"ReservationScreen_elevation-22__LdGaa\",\"elevation-23\":\"ReservationScreen_elevation-23__1qZ1h\",\"elevation-24\":\"ReservationScreen_elevation-24__qwsiO\",\"filters\":\"ReservationScreen_filters__3_-rF\",\"filtersLabel\":\"ReservationScreen_filtersLabel__1LAGn\",\"searchButton\":\"ReservationScreen_searchButton__pSkys\",\"divider\":\"ReservationScreen_divider__1nckx\",\"vehicleCell\":\"ReservationScreen_vehicleCell__MpJum\",\"imageCell\":\"ReservationScreen_imageCell__3o7zv\",\"contentImage\":\"ReservationScreen_contentImage__3eXBR\",\"img\":\"ReservationScreen_img__3iOKq\",\"description\":\"ReservationScreen_description__2TyW8\",\"bold\":\"ReservationScreen_bold__1qA76\",\"smallLabel\":\"ReservationScreen_smallLabel__2pipt\",\"driverEmail\":\"ReservationScreen_driverEmail__3Th_Y\",\"reserveButton\":\"ReservationScreen_reserveButton__3vJOB\",\"alertMessage\":\"ReservationScreen_alertMessage__-tnu1\",\"iconAlertMessage\":\"ReservationScreen_iconAlertMessage__e9w3N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"elevation-1\":\"WelcomeModal_elevation-1__ZF2yI\",\"elevation-2\":\"WelcomeModal_elevation-2__3_wqx\",\"elevation-3\":\"WelcomeModal_elevation-3__4LyO_\",\"elevation-4\":\"WelcomeModal_elevation-4__16mT2\",\"elevation-5\":\"WelcomeModal_elevation-5__so-Vp\",\"elevation-6\":\"WelcomeModal_elevation-6__3ocy1\",\"elevation-7\":\"WelcomeModal_elevation-7__14DSz\",\"elevation-8\":\"WelcomeModal_elevation-8__1korj\",\"elevation-9\":\"WelcomeModal_elevation-9__2xwC5\",\"elevation-10\":\"WelcomeModal_elevation-10__3fbF6\",\"elevation-11\":\"WelcomeModal_elevation-11__vZ6e9\",\"elevation-12\":\"WelcomeModal_elevation-12__1QFuV\",\"elevation-13\":\"WelcomeModal_elevation-13__3r6F6\",\"elevation-14\":\"WelcomeModal_elevation-14__1KQ8C\",\"elevation-15\":\"WelcomeModal_elevation-15__3IFGo\",\"elevation-16\":\"WelcomeModal_elevation-16__160xT\",\"elevation-17\":\"WelcomeModal_elevation-17__MZTJV\",\"elevation-18\":\"WelcomeModal_elevation-18__2hH0P\",\"elevation-19\":\"WelcomeModal_elevation-19__1Xxk3\",\"elevation-20\":\"WelcomeModal_elevation-20__1eCsu\",\"elevation-21\":\"WelcomeModal_elevation-21__3BtRJ\",\"elevation-22\":\"WelcomeModal_elevation-22__loUjy\",\"elevation-23\":\"WelcomeModal_elevation-23__2P7Hc\",\"elevation-24\":\"WelcomeModal_elevation-24__2tA2k\",\"modalContainer\":\"WelcomeModal_modalContainer__bixGh\",\"logo\":\"WelcomeModal_logo__K19tP\",\"image\":\"WelcomeModal_image__1PBIG\",\"closeButton\":\"WelcomeModal_closeButton__1YCni\",\"slider\":\"WelcomeModal_slider__3n44T\",\"title\":\"WelcomeModal_title__CvoD-\",\"subtitle\":\"WelcomeModal_subtitle__2xUEx\",\"description\":\"WelcomeModal_description__343lo\",\"pagination\":\"WelcomeModal_pagination__20WQX\",\"checkBoxContainer\":\"WelcomeModal_checkBoxContainer__1sJnA\",\"container\":\"WelcomeModal_container__1wUNC\",\"checkmark\":\"WelcomeModal_checkmark__s2MMM\",\"checkBoxText\":\"WelcomeModal_checkBoxText__3NTjv\",\"overlay\":\"WelcomeModal_overlay__3Oern\",\"swiper\":\"WelcomeModal_swiper__3MUI_\"};"],"sourceRoot":""}